PVE创建VM的时候,无法在面板上创建超线程。
例如,你想创建一个2c4t的CPU,但是通过PVE面板,你只能创建一个4核的虚拟机。在某些情况下,这样会产生性能问题。不适合精密环境。
这里给出一个方法,使虚拟机具有超线程属性。在shell中执行命令
Intel使用下面命令
qm set <vmid> -args “-smp 4,cores=2,threads=2”
amd使用下面命令除了上面的命令,还得再加一条
- qm set <vmid> -args “-smp 4,cores=2,threads=2,sockets=1,maxcpus=4 -cpu host,topoext=on”
这里将vmid替换成虚拟机的id,这里的4是总vcpu数,cores是核心数,threads是单核心的线程数。
这条命令,会给虚拟机配置成2核4线程的CPU。
在虚拟机中输出如下
- Architecture: x86_64
- CPU op-mode(s): 32-bit, 64-bit
- Byte Order: Little Endian
- Address sizes: 40 bits physical, 48 bits virtual
- CPU(s): 4 //总cpu数
- On-line CPU(s) list: 0-3
- Thread(s) per core: 2 //单核心中的线程数
- Core(s) per socket: 2 //一个插槽中的核心数
- Socket(s): 1
- NUMA node(s): 1
- Vendor ID: GenuineIntel
- CPU family: 15
- Model: 6
- Model name: Common KVM processor
注意这里要和面板设定的CPU总数匹配
如我这里通过命令设置成2核4线程。
在面板上将虚拟机改成6核,启动就会报错。