リアルタイムバーチャルマシン
そんな用語があるのか? という感じのタイトルですが、Windowsをインストールしている仮想環境に関わるプロセスの優先度をリアルタイムにしてみました。リアルタイムプロセスは普通のプロセスより優先されるので、ホスト側(Linux)で普通に処理を動かしても仮想環境側(Windows)の処理を重くしなくなるはず、です。多分。
libvirtの設定
<domain type='kvm'> <cputune> <emulatorsched scheduler='rr' priority='1'/> <vcpusched vcpus='0-13' scheduler='rr' priority='1'/> <iothreadsched iothreads='1-2' scheduler='rr' priority='1'/> </cputune> </domain>
scheduler
chrt
コマンドでいうところのスケジューリングポリシーを設定します。
設定値 | 説明 |
---|---|
fifo | First In-First Outの略。リアルタイムプロセスにする。 時間経過で他のプロセスに切り替わったりしない。 |
rr | Round Robinの略。リアルタイムプロセスにする。 時間経過で同じ優先度の他のプロセスに切り替わる。 |
batch | バッチプロセスにする。スケジューリングにおいて少しだけペナルティを受ける。 |
idle | アイドルプロセスにする。優先度をとても低くする。 |
priority
リアルタイムプロセスの場合に指定します。1から99までの値で、数字が大きいほど優先度が高くなります。
vcpus
対象となる仮想CPUを指定します。
iothreads
対象となるIOスレッドを指定します。