「du」プログラムはあまり積極的ではないでしょうか?

「du」プログラムはあまり積極的ではないでしょうか?

私たちの一般的な使命は、いくつかduのサブディレクトリを要約し、最悪の違反者を特定し、その結果を使用して急速に増加するコンテンツを見つけ、潜在的な問題を見つけることです。これをdiff比較するためにスナップショットを使用します。

それぞれが数十または数千のファイル(またはそれ以上)を含むことができる複数(数百)のサブディレクトリを持つ最上位ディレクトリを持ちます。

この場合、 " du -s"は非常に深刻なIO攻撃を引き起こす可能性があり、これはサーバーがキャッシュを放棄し、それによって膨大なIOスパイクを引き起こします。これは非常に穏やかな副作用です。

不要な副作用なしに同じデータを取得するためにどの戦略を使用できますか?

ベストアンサー1

見てくださいionice。 ~からman ionice:

このプログラムは、プログラムのioスケジューリングカテゴリと優先順位を設定または取得します。引数が指定されていない場合、または-pのみが指定されている場合、ioniceは現在のioスケジューリングクラスとプロセスの優先順位を照会します。

「アイドル」入出力クラス(使用可能な最低優先順位)を使用して実行するには、du次のようにします。

ionice -c 3 du -s

duこれにより、I / Oが他のプロセスを妨げないようにすることができます。次のようにプログラムを再調整して CPU 優先順位を下げることも検討できます。

renice -n 19 "$duPid"

初期化中に両方を実行することもできます。

nice -n 19 ionice -c 3 du

おすすめ記事