バックグラウンドで実行されるかなり集中的なIOを実行する複数のスレッドを生成するプログラムがあります。idle
システムをブロックしないように予約クラスを設定したかったのですが、プロセスIDが望む効果を得られませんでしたionice -c3 -p <PID>
。<PID>
プロセスのスケジューリングクラス<PID>
が変更されても、プロセスiotop
が生成するすべてのスレッドは、起動時にまだデフォルトの優先順位(最善の努力レベル4)を持ちます。
プログラムのIO優先順位とLinuxで生成されるすべてのスレッドまたはプロセスを変更する方法は?
答え1
ionice
プロセスグループIDをパラメータ(-P
スイッチ)に渡すことができ、これは特定のプロセスグループ内のすべてのプロセス(およびスレッド)に明らかに影響します。プロセスグループIDは、/proc/<PID>/stat
5番目のフィールドを表示または使用して見つけることができますps
。この設定は私が望むものより少し粗いですが、うまく機能します。