まず、Linux がCFQスケジューラを使用していることを確認します。その後、ionice を使用して、プログラムの I/O スケジューリング クラスと優先度を制御できます。次の 3 つのスケジューリング クラスをサポートしています (man ページからの引用)。
Idle : アイドル io 優先度で実行されているプログラムは、定義された猶予期間中に他のプログラムがディスク io を要求しなかった場合にのみ、ディスク時間を取得します。アイドル状態の io プロセスが通常のシステム アクティビティに与える影響は、ゼロにする必要があります。このスケジューリング クラスは、優先度引数を取りません。
ベスト エフォート: これは、特定の io 優先度を要求していないプロセスの既定のスケジューリング クラスです。プログラムは、io 優先度の CPU ナイス設定を継承します。このクラスは、0 ~ 7 の優先度引数を取り、数値が小さいほど優先度が高くなります。同じベスト エフォート優先度で実行されているプログラムは、ラウンド ロビン方式で提供されます。これは通常、ほとんどのアプリケーションに推奨されます。
リアルタイム: RT スケジューリング クラスには、システムで他に何が起こっているかに関係なく、ディスクへの最初のアクセスが与えられます。したがって、RT クラスは他のプロセスを枯渇させる可能性があるため、注意して使用する必要があります。ベスト エフォート クラスと同様に、特定のプロセスが各スケジューリング ウィンドウで受け取るタイム スライスの大きさを示す 8 つの優先度レベルが定義されています。これは、負荷の高いシステムでは避けるべきです。
ionice オプション PID ionice オプション -p PID ionice -c1 -n0 PID
これ以上制限するには、SAN ユーティリティを使用する必要があると思います。