我已经使用 pci 直通设置了我的 VM,现在我正在尝试设置 cpupinning。我如何验证它确实有效?我的 cpu 参数配置如下:
...
<vcpu placement="static">4</vcpu>
<cputune>
<vcpupin vcpu="0" cpuset="2"/>
<vcpupin vcpu="1" cpuset="3"/>
<vcpupin vcpu="2" cpuset="6"/>
<vcpupin vcpu="3" cpuset="7"/>
</cputune>
<cpu mode="host-passthrough" check="none">
<topology sockets="1" cores="2" threads="2"/>
<feature policy="disable" name="hypervisor"/>
</cpu>
...
lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4600,0000 800,0000
1 0 0 1 1:1:1:0 yes 4600,0000 800,0000
2 0 0 2 2:2:2:0 yes 4600,0000 800,0000
3 0 0 3 3:3:3:0 yes 4600,0000 800,0000
4 0 0 0 0:0:0:0 yes 4600,0000 800,0000
5 0 0 1 1:1:1:0 yes 4600,0000 800,0000
6 0 0 2 2:2:2:0 yes 4600,0000 800,0000
7 0 0 3 3:3:3:0 yes 4600,0000 800,0000
我应该分配正确的超线程对。我的方法是检查 CPU 核心频率,同时在虚拟机中强调 CPU,但这毫无用处。事实上,cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
所有核心都达到了 4.6GHz。我的 8 个核心中,难道不应该有 4 个以空闲频率运行吗?
答案1
您可以一次对虚拟机中的每个核心进行压力测试,并使用主机上的 top 或 htop 观察每个核心的 CPU 使用率。这应该可以确认客户机中的哪个核心与客户机上的哪个核心相对应。