虚拟机绑核
目的
虚拟机绑核可以有效地减少操作系统的上下文切换和负载均衡的开销,从而提高程序的执行效率。
方法
- 打开虚拟机xml配置文件。vm1为虚拟机名称,请根据实际情况修改。
1
virsh edit vm1
- 在虚拟机xml配置文件中,按照如下信息进行修改。
1 2 3 4 5 6 7 8 9 10 11 12
<domain type = 'KVM'> ... <vcpu placement = 'static' cpuset='4-7'>4</vcpu> <cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='5'/> <vcpupin vcpu='2' cpuset='6'/> <vcpupin vcpu='3' cpuset='7'/> <emulatorpin cpuset='4-7'/> </cputune> ... <domain>
- emulatorpin cpuset='4-7':表示将QEMU主线程绑定到4~7物理CPU上。
- vcpu placement = 'static' cpuset='4-7':该参数用于IO线程或worker threads线程时仅能使用4~7这4个核。若不配置此参数,虚拟机任务线程会在CPU任意core上浮动,会存在更多的跨NUMA和跨DIE损耗。
- vcpupin用于限制对CPU线程做虚拟机和物理机的一对一绑核。若不使用vcpupin绑CPU线程,则线程会在4~7这个4个核之间切换,造成额外开销。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
父主题: 虚拟机调优