在qemu/kvm中,qemu提供對cpu的模擬,每個虛擬機都是一個標準的linux進程,每個vcpu在宿主機中都是qemu進程派生的一個普通線程,其實就是對線程進行綁定與限制
kvm虛擬機綁定
1、查找所有虛擬機的進程跟線程
#ps -eLo pid,lwp,psr,args|grep qemu-kvm |grep -v grep |grep cgroups-test(VMname)
2、查看出線程,一個是全部,一個vcpu線程
綁定虛擬機到0核上
#echo "0" > /cgroups/cpuset/libvirt/qemu/cgroups-test/emulator/cpuset.cpus
#echo "5175" > /cgroups/cpuset/libvirt/qemu/cgroups-test/emulator/tasks
#echo "5200" > /cgroups/cpuset/libvirt/qemu/cgroups-test/emulator/tasks
直接設置方式可使用taskset
#taskset -cp 0(核) 31801(pid)
3、通過虛擬機xml文件
<vcpu cpuset='0'>1</vcpu>