通过KVM做完的Windows虚拟机,虽然分配了很多核心给虚拟机,CPU只识别两核的问题,原因是默认生成的虚拟机配置文件中没有CPU的拓扑设定,默认KVM模拟一个Socket,2个核心。
解决方法:
关闭虚拟机,编辑/etc/libvirt/qemu/下的虚拟机配置文件,如:win10.xml
<domain type='kvm' id='1'>
...
<vcpu placement='static'>16</vcpu>
...
<cpu mode='host-passthrough'>
<topology sockets='1' cores='8' threads='2'/>
</cpu>
...
</domain>
其中,<vcpu placement='static'>16</vcpu>是在KVM创建虚拟机的页面上设置的CPU核数
<topology sockets='1' cores='8' threads='2'/>是设置的CPU拓扑信息,CPU核数=socket*cores*thread
设置完保存退出,并重新启动KVM(保险起见):systemctl restart libvirtd
然后重启虚拟机就OK了。
追加更新:
也可以在KVM管理界面上如下方法修改。如下图