マルチスレッドアプリケーション用のイオニック設定

マルチスレッドアプリケーション用のイオニック設定

バックグラウンドで実行されるかなり集中的なIOを実行する複数のスレッドを生成するプログラムがあります。idleシステムをブロックしないように予約クラスを設定したかったのですが、プロセスIDが望む効果を得られませんでしたionice -c3 -p <PID><PID>プロセスのスケジューリングクラス<PID>が変更されても、プロセスiotopが生成するすべてのスレッドは、起動時にまだデフォルトの優先順位(最善の努力レベル4)を持ちます。

プログラムのIO優先順位とLinuxで生成されるすべてのスレッドまたはプロセスを変更する方法は?

答え1

ioniceプロセスグループIDをパラメータ(-Pスイッチ)に渡すことができ、これは特定のプロセスグループ内のすべてのプロセス(およびスレッド)に明らかに影響します。プロセスグループIDは、/proc/<PID>/stat5番目のフィールドを表示または使用して見つけることができますps。この設定は私が望むものより少し粗いですが、うまく機能します。

関連情報