私たちの一般的な使命は、いくつか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