在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>