nice -n 19 find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) \
-exec zip live.zip '{}' \;
上記のコマンドは、nice
コマンドが存在しないかのように、ライブのCentOSサーバーで実行されます。60秒ほど経つと、コマンドzip
を使用すると「上」に表示されtop
ます。サーバーがフォールオーバーし始め、コマンドをクラッシュさせる必要があります。
nice
プロセスのスケジューリング優先度のみを設定します。消費するCPU時間を制限するものではありません。
したがって、優先度の低いプロセスが大量のCPU時間/リソースを消費したい場合は、それらを取得します。優先度の高いプロセスがCPU時間を占有するようになるまで。
重要なのは、CPUに他に何もすることがない場合、優先度が高くなくても、CPUに必要なプロセスにすべてのCPU時間を提供してみませんか?
CPU使用率を最大値の%に制限する場合は、次のようなものを使用することを検討してください。cpulimit
編集:
zip
物事をひどく遅くするかもしれない他の理由は次のとおりです:
ディスクI/O:ionice
一部のディストリビューションで制御できます(CentOSにデフォルトで搭載されているかどうかはわかりません)-David Schmittは、以下のコメントでこれを指摘しています。
zip
大量のメモリを割り当て、他のプロセスをスワップアウトする可能性があります。次に、これらのプロセスがウェイクアップすると(たとえばmysqld
、クエリを取得すると)、動作が遅くなります。Swappinessを減らすことで、これについて何かできるかもしれません。ただし、これはシステムレベルのパラメータであり、そのままにしておくことをお勧めします。
コメントから、サーバーのメモリが不足していると推測されますが、これは実際には CPU、I/O、または優先順位付けの問題ではありません。
圧縮を tar などのストリーミング ソリューションに置き換えてみてください。これにより、必要なメモリが大幅に削減されます。
find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) -print0 \
| xargs -0 tar cvzf live.tar.gz
このコマンドを使用nice
することは、影響をさらに軽減するための選択肢として残っています。実行時間が長くなる可能性と、その間に使用されるその他のリソース (特にメモリ) とのバランスを取る必要があります。