KVMの仮想サーバーの仮想CPU設定を行ってみました。
環境
物理サーバーは8コア(4コア8スレッド)CPUを使用しました。
「guest01」という名前の仮想サーバーの仮想CPUの設定を行った例です。
仮想CPUの割当て状態の確認
現在の仮想CPU設定状態を確認してみます。
virsh vcpuinfo guest01
結果
VCPU: 0 CPU: 2 State: running CPU time: 6844.8s CPU Affinity: yyyyyyyy VCPU: 1 CPU: 4 State: running CPU time: 22192.9s CPU Affinity: yyyyyyyy
上記の見方は、
仮想CPU0は物理CPU2に割当てられていて、
仮想CPU1は物理CPU4に割当てられている。
という意味です。
どの物理CPUコアに割当てられてるかは
CPU Affinity: yyyyyyyy
のなかでyになっている箇所から選出されます。
8コア全て有効になっているので8個全てyになっています。
特定の物理CPUコアと仮想CPUを紐付ける場合
仮想CPU0を物理CPU5に割当ててみます。
virsh vcpupin guest01 0 5
結果
VCPU: 0 CPU: 5 State: running CPU time: 6849.4s CPU Affinity: ----y--- VCPU: 1 CPU: 4 State: running CPU time: 22208.9s CPU Affinity: yyyyyyyy
仮想CPU0の
CPU Affinityが5番目の箇所だけyになりました。
これで仮想CPU0は物理CPU5だけ使用するようになります。
物理CPUとの紐付け設定を戻す場合
上記で設定した紐付けを戻して8コア全て有効にします。
virsh vcpupin guest01 0 0,1,2,3,4,5,6,7
結果
VCPU: 0 CPU: 2 State: running CPU time: 6860.5s CPU Affinity: yyyyyyyy VCPU: 1 CPU: 3 State: running CPU time: 22246.5s CPU Affinity: yyyyyyyy