1
nice -n 19 find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) \
  -exec zip live.zip '{}' \;

上記のコマンドは、niceコマンドが存在しないかのように、ライブのCentOSサーバーで実行されます。60秒ほど経つと、コマンドzipを使用すると「上」に表示されtopます。サーバーがフォールオーバーし始め、コマンドをクラッシュさせる必要があります。

4

2 に答える 2

2

niceプロセスのスケジューリング優先度のみを設定します。消費するCPU時間を制限するものではありません。

したがって、優先度の低いプロセスが大量のCPU時間/リソースを消費したい場合は、それら取得します。優先度の高いプロセスがCPU時間を占有するようになるまで。

重要なのは、CPUに他に何もすることがない場合、優先度が高くなくても、CPUに必要なプロセスにすべてのCPU時間を提供してみませんか?

CPU使用率を最大値の%に制限する場合は、次のようなものを使用することを検討してください。cpulimit


編集:

zip物事をひどく遅くするかもしれない他の理由は次のとおりです:

  1. ディスクI/O:ionice一部のディストリビューションで制御できます(CentOSにデフォルトで搭載されているかどうかはわかりません)-D​​avid Schmittは、以下のコメントでこれを指摘しています。

  2. zip大量のメモリを割り当て、他のプロセスをスワップアウトする可能性があります。次に、これらのプロセスがウェイクアップすると(たとえばmysqld、クエリを取得すると)、動作が遅くなります。Swappinessを減らすことで、これについて何かできるかもしれません。ただし、これはシステムレベルのパラメータであり、そのままにしておくことをお勧めします。

于 2012-05-15T11:37:13.410 に答える
2

コメントから、サーバーのメモリが不足していると推測されますが、これは実際には CPU、I/O、または優先順位付けの問題ではありません。

圧縮を tar などのストリーミング ソリューションに置き換えてみてください。これにより、必要なメモリが大幅に削減されます。

find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) -print0 \
    | xargs -0 tar cvzf live.tar.gz 

このコマンドを使用niceすることは、影響をさらに軽減するための選択肢として残っています。実行時間が長くなる可能性と、その間に使用されるその他のリソース (特にメモリ) とのバランスを取る必要があります。

于 2012-05-15T14:45:21.253 に答える