renice -g
のように、プロセスのグループ全体のI/O優先度を変更する簡単な方法はありますか? ionice
では、単一プロセスのI/O優先度の変更のみがサポートされているようです。これができない場合は、誰かが関連するAPI呼び出しを教えてくれますか(私はPOSIX apiにまったく精通していません)、この機能を自分で実装するための簡単なコマンドラインユーティリティを作成できますか?
次のようなgioniceというスクリプトを作成できます。
#!/bin/sh
ps -s $1 -o pid | xargs ionice -c 2 -n 0 -p
次に、プロセスグループID 3266の場合、次のように呼び出すことができます。
./gionice 3266
「ps-sPID -o pid」は、グループリーダーがPIDであるプロセスの行ごとの識別子を出力します。次に、すべての行について、xargsは「ionice-c 2 -n 0 -p」の後にその行を追加し、結果のコマンドを呼び出します。
お役に立てば幸いです。
Cgroupsとblkioモジュールを見たことがありますか?
http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
これを使用して、IOを制限し、ioniceのみよりもはるかに多くの制御を行うことができます。また、cgrulesengdデーモンを使用して、既存のグループインフラストラクチャに新しいプロセスを自動的に追加することもできます。