サーバーの負荷を押してモニターアラートをトリガーするrsync cronジョブがあります。ジョブを高いniceレベルで実行するように設定した場合、システム負荷値に与える影響を効果的に減らすことができますか?
サーバーの負荷を押してモニターアラートをトリガーするrsync cronジョブがあります。ジョブを高いniceレベルで実行するように設定した場合、システム負荷値に与える影響を効果的に減らすことができますか?
回答:
nice値を変更しても、システムの負荷は直接軽減されません。ただし、それを使用して、残りのプロセスで使用可能なリソースを増やすことができます。
http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/から
カーネルは、nice値に基づいて、プロセスに必要なプロセッサ時間を決定します。考えられるnice値の範囲は、-20〜20です。nice値が-20のプロセスは、非常に優先順位が高くなります。nice値が20のプロセスの優先度は非常に低くなっています。
したがって、他のプロセスが優先されることを確認したい場合は、他のプロセスよりも高いレベルでcronジョブを実行する必要があります。
これを行うには、cronスクリプトを次のように実行します。
/bin/nice -n 10 /path/to/cron-script
これにより、cronスクリプトがnicenessを10ずつ増やして実行されます。残りのプロセスとスクリプトの実行時間のバランスを見つけるために、少しテストしたいと思うでしょう。
また、どのように良い仕事ですか?詳細については、http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/をご覧ください。
プロセスのniceレベルを変更しても、システムの負荷値には影響しません。システム負荷値は、実行キューの平均の長さです。これは、基本的にはCPUを使用するプロセスの数です。
CPUにバインドされたプロセスを実行している場合(rsyncはそうではありませんが、単なる例です)、使用可能なプロセスがある場合は常にCPU時間を使用する必要があります。常に実行したいので、システムの負荷値に1.0の負荷値を提供します。実行キューの平均の長さは実行キュー内のプロセスの順序に影響されないため、プロセスの適切なレベルは何でもかまいません。
システム負荷/ CPU時間へのプロセスの影響を軽減する3つの方法を検討する場合があります。
nice
コマンドを使用して、タスクの優先度を手動で下げます。cpulimit
コマンドを使用してプロセスを繰り返し一時停止し、一定の制限を超えないようにします。built-in control groups
します。これは、プロセスで使用可能なリソースの量を制限するようにスケジューラーに指示するメカニズムです。資源