時々、ディスク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
マニュアルページより多くの情報を知りたいです。