注:ここで説明するように、このソリューションはcfqスケジューラでのみ機能します。どちらを使用するかを確認してください
cat /sys/block/sda/queue/scheduler
そして、変更する必要があれば、それを。
私が正しく理解していればionice
、コマンドを開始するたびに何らかの設定を適用する必要があります。あなたはこの方法でそれを行うことができます:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
最初のコマンドは、VirtualBox
コンテンツとして一重引用符で囲まれたテキストを含むファイルを作成します。これは、プログラムへの完全なパスを持つ必要があります。指定するVirtualBox
だけで、作成したばかりのファイルと解釈して「ループ」を作成できるためです。
2番目のコマンドは実行可能にし、3番目は「システム」のbinフォルダーの前にあるフォルダーにこの新しいファイルを移動する/usr/bin
ため、元のファイルの代わりに新しいファイルが実行されます。「$ @」の部分には、コマンドが呼び出されたすべての引数が含まれているため、実際のVirtualBoxコマンドに転送されます。
このスーパーユーザーの質問への回答(「はい」)によると、子供プロセスは親からionice優先順位を継承しますか?実行中のプロセスのIO優先度をどのように確認しますか?、次のようにionice
、親プロセスにはそれで十分です:
ionice -c 3 VirtualBox
ionice
manページから、次のI / Oスケジューリングクラスの値を使用できます。
- なしの場合は0
- 1はリアルタイム
- ベストエフォートの場合は2
- アイドルの場合は3(上記の例で使用)
番号またはクラス名を使用できます。
また、-n level
オプションは、有効なデータ(優先度レベル)として0〜7のリアルタイムおよびベストエフォートクラスに適用できます。