7.2 CPU pinning配置
将虚拟cpu核心和host cpu核心进行对应绑定,可以有效减少cpu资源竞争,提高cache命中率。
在进行cpu pinning优化配置之前我们可以先查看以下host机器的cpu特性,可以通过如下命令进行查看:
virsh nodeinfo
CPU 型号: loongarch64
CPU: 16
CPU socket: 1
每个 socket 的内核数: 4
每个内核的线程数: 1
NUMA 单元: 4
结果显示host机器cpu核心数为16,我们可以按需求为虚拟cpu分配16个核心,然后配置cpu pinning,其具体操作步骤为:
1.使用以下命令打开虚拟机配置文件
EDITOR=vim virsh edit virtual_machine_name
2.打开虚拟机配置文件后添加以下配置:
<cputune>
<vcpupin vcpu="0" cpuset="0"/>
<vcpupin vcpu="1" cpuset="1"/>
<vcpupin vcpu="2" cpuset="2"/>
<vcpupin vcpu="3" cpuset="3"/>
<vcpupin vcpu="4" cpuset="4"/>
<vcpupin vcpu="5" cpuset="5"/>
<vcpupin vcpu="6" cpuset="6"/>
<vcpupin vcpu="7" cpuset="7"/>
<vcpupin vcpu="8" cpuset="8"/>
<vcpupin vcpu="9" cpuset="9"/>
<vcpupin vcpu="10" cpuset="10"/>
<vcpupin vcpu="11" cpuset="11"/>
<vcpupin vcpu="12" cpuset="12"/>
<vcpupin vcpu="13" cpuset="13"/>
<vcpupin vcpu="14" cpuset="14"/>
<vcpupin vcpu="15" cpuset="15"/>
</cputune>
以上配置文件中vcpu代表虚拟cpu核心号,cpuset表示物理cpu的核心号。其配置项的含义是将vpuc与cpuset对应绑定。
在配置完成后我们可以通过如下命令查看vcpu与cpuset的对应关系,下面结果显示vcpu与cpu绑定成功。
virsh vcpuinfo virtual_machine_name
VCPU: 0
CPU: 0
状态: running
CPU 时间: 4277.3s
CPU关系: y---------------
VCPU: 1
CPU: 1
状态: running
CPU 时间: 4301.4s
CPU关系: -y--------------
VCPU: 2
CPU: 2
状态: running
CPU 时间: 4328.6s
CPU关系: --y-------------
......
VCPU: 15
CPU: 15
状态: running
CPU 时间: 4336.0s
CPU关系: ---------------y