Skip to main content

KVM VCpu Pinning With Virsh

CPU allocation to virtual guests with KVM Hypervisor can be done in different ways. In my example vcpu placement is static, but no cpuset is specified, so that domain process will be pinned to all the available physical CPUs. I want to change them and pin vcpus to available physical cpus.

Note: The followings are only examples. So give them a try on a test environment by substituting your values.

# virsh dumpxml test_kvm01
<domain type='kvm' id='18'>
<name>test_kvm01</name>
..
..
<vcpu placement='static'>4</vcpu>
..
..
</domain>


vcpu info can be listed using virsh vcpuinfo command:
# virsh vcpuinfo test_kvm01
VCPU: 0
CPU: 11
State: running
CPU time: 247454.2s
CPU Affinity: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

VCPU: 1
CPU: 11
State: running
CPU time: 845257.6s
CPU Affinity: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

VCPU: 2
CPU: 53
State: running
CPU time: 237962.2s
CPU Affinity: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

VCPU: 3
CPU: 51
State: running
CPU time: 226221.4s
CPU Affinity: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy


Current vcpu pinning configuration can be obtained with the following command:
# virsh vcpupin test_kvm01
VCPU: CPU Affinity
----------------------------------
0: 0-79
1: 0-79
2: 0-79
3: 0-79


With the same command a vcpu can be pinned to corresponding physical cpu:
# virsh vcpupin test_kvm01 0 10
# virsh vcpupin test_kvm01 1 11
# virsh vcpupin test_kvm01 2 12
# virsh vcpupin test_kvm01 3 13


Comments

Popular posts from this blog