web-dev-qa-db-ja.com

ディスクIO優先度はプロセスの優先度とどのように関連していますか?

ディスクをオーバーロードするソフトウェアを実行していますIO時々。そのソフトウェアからの高速な応答は必要ありません。他のアプリケーションからの高速な応答が必要なので、そのために低いプロセス優先度を設定できます。私はプロセスの優先度がディスクにどのように影響するかを尋ねたいIOプロセスの優先度。

小さな実験を試しました:プロセスの優先度を低く(システムモニターのGNOMEで)設定し、IO優先度をioniceでチェックしました。

結果:

IO priority = 0 for normal process priority   
IO priority = 4 for low process priority

しかし、これは常にこのように機能しますか?プロセスの優先度を下げると、IO優先度は常に下げられますか?

11
Kamil

Linuxでは、デフォルトで、プロセスのIO=優先順位は、式に従ってCPU優先順位から導出されます。

io_priority = (cpu_Nice + 20) / 5

IO優先度の範囲は0〜7で、0が最高の優先度です。 CPUの使いやすさの範囲は-20から19で、-20が最優先です。

ioniceコマンドを使用して、プロセスのIO優先順位を変更できます。システムがビジー状態でない場合にのみそのプロセスを実行する場合は、「デフォルトの「ベストエフォート」クラスではなく、アイドル」クラス:

ionice -c 3 -p $PID
ionice -c 3 mycommand --someoption

優先度が最も低くても、ディスクを集中的に使用するプロセスは、キャッシュを汚染するため、システムの速度を低下させる傾向があります。

詳細は ionice man page を参照してください。