ディスクIO優先順位とプロセス優先順位の関係は何ですか?

ディスクIO優先順位とプロセス優先順位の関係は何ですか?

時々、ディスクIOに過負荷がかかるソフトウェアを実行します。このソフトウェアでは高速応答を必要とせず、他のアプリケーションでは高速応答を必要とするため、プロセスの優先順位を低く設定できます。プロセス優先順位がプロセスのディスクIO優先順位にどのような影響を与えるかを尋ねたいと思います。

私はいくつかの実験を試しました。プロセスに対して低い優先順位を設定し(GNOMEの下のシステムモニタで)ionice

結果:

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

しかし、これは常に本当ですか?プロセス優先順位を下げると、IO優先順位も常に低くなりますか?

答え1

Linuxでは、基本的にプロセスのIO優先順位はCPU優先順位に基づく式から派生します。

io_priority = (cpu_nice + 20) / 5

IO優先順位の範囲は0から7までで、0が最も高い優先順位です。 CPU親和性の範囲は-20から19までで、-20が最も高い優先順位です。

このioniceコマンドを使用して、プロセスのIO優先順位を変更できます。システムが使用中でない場合にのみプロセスを実行するには、デフォルトの「ベスト」クラスではなく「idle」クラスで実行するように設定してください。

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

優先順位が最も低い場合でも、ディスクを多用するプロセスはキャッシュを汚染するため、システムの速度が低下する可能性があります。

よりioniceマニュアルページより多くの情報を知りたいです。

関連情報