pvetools
pvetools copied to clipboard
希望添加解除虚拟机 vCPU 限制功能
应用场景
因特殊需求,有时候需要创建虚拟机,自定义核数。
案例
比如主机只有 4 个核,但是虚拟机要创建 8 个核,Proxmox 会报:MAX $allowed_vcpus vcpus allowed per VM on this node
错误。但 QEMU 实际上是允许这样操作的。
有什么用?
在一些不支持超线程的高频 CPU 上,比如 i5,这样操作可以提升部分虚拟机的性能。同时需要配合 cpulimit 参数。比如给虚拟机分配 8 个 vCPU,但是只占用主机 3 个核心的性能,vCPU 配置为 8,CPU Limit 配置为 3.0。
解决方法
- 编辑文件
/usr/share/perl5/PVE/QemuServer.pm
- 注释如下两行:
# my $allowed_vcpus = $cpuinfo->{cpus}; # die "MAX $allowed_vcpus vcpus allowed per VM on this node\n" if ($allowed_vcpus < $maxcpus);
- 重启 pvedaemon 服务
我两行代码都注释掉之后pvedaemon服务无法启动。log报错“# my $allowed_vcpus = $cpuinfo->{cpus}; ”我将这行取消注释之后服务可以正常启动功能限制也可以解除。