18.7.6. 仮想 CPU キャッピングの設定
仮想 CPU (vCPU) キャッピングを使用すると、仮想マシン (VM) が使用できる CPU リソースの量を制限できます。1 台の仮想マシンによるホストの CPU リソースの過剰な使用を防ぎ、ハイパーバイザーによる CPU スケジューリングの管理を容易にすることで、全体的なパフォーマンスを向上させることができます。
手順
ホストの現在の仮想 CPU スケジューリング設定を表示します。
# virsh schedinfo <vm_name> Scheduler : posix cpu_shares : 0 vcpu_period : 0 vcpu_quota : 0 emulator_period: 0 emulator_quota : 0 global_period : 0 global_quota : 0 iothread_period: 0 iothread_quota : 0仮想マシンの絶対的な仮想 CPU キャップを設定するには、
vcpu_periodおよびvcpu_quotaパラメーターを設定します。どちらのパラメーターも、マイクロ秒単位の時間の長さを表す数値を使用します。virsh schedinfoコマンドを使用してvcpu_periodパラメーターを設定します。以下に例を示します。# virsh schedinfo <vm_name> --set vcpu_period=100000この例では、
vcpu_periodは 100,000 マイクロ秒に設定されています。これは、スケジューラーがこの時間間隔中に仮想 CPU キャッピングを適用することを意味します。--live --configオプションを使用して、実行中の仮想マシンを再起動せずに設定することもできます。virsh schedinfoコマンドを使用してvcpu_quotaパラメーターを設定します。以下に例を示します。# virsh schedinfo <vm_name> --set vcpu_quota=50000この例では、
vcpu_quotaは 50,000 マイクロ秒に設定されています。これは、vcpu_period時間間隔中に仮想マシンが使用できる CPU 時間の最大量を指定します。この場合、vcpu_quotaはvcpu_periodの半分に設定されているため、仮想マシンはその間隔中に CPU 時間の最大 50% を使用できます。--live --configオプションを使用して、実行中の仮想マシンを再起動せずに設定することもできます。
検証
仮想 CPU スケジューリングのパラメーターの値が正しいことを確認します。
# virsh schedinfo <vm_name> Scheduler : posix cpu_shares : 2048 vcpu_period : 100000 vcpu_quota : 50000 ...