vmware 中给 VM 设置 cpu 如何设置才是合理的?

2022-09-06 11:55:18 +08:00
 chackchackGO

针对大多数家用台式电脑或笔记本的这种单 CPU 情况而言, 如何设置最好?
之所以这么问是因为我一直不能完全理解 'Number of processors' 和 'Number of cores per processor'这 2 个字段的意义.

我本以为是 'Number of processors' 指 '完整的一块物理 CPU' 的数量, 例如一颗 Intel I7-9750H CPU 就代表一块.
'Number of cores per processor' 即指代针对每块物理 cpu 所共享给虚拟机的核心数量. 例如 6 核的 I7-9750H 我可以共享出去 1~6 核.
但是学长跟我讲不是这样理解的..涉及到 NUMA 之类的较深层的 cpu 概念. 听的我云里雾里,而且搜到的资料也不多的样子.

按照上图设置之后的 win10 虚拟机仍然操作不流畅, 其余设置是 8G 内存和 100G 的 nvme 固态

5046 次点击
所在节点    问与答
23 条回复
wangyuyang3
2022-09-06 22:18:48 +08:00
@cubecube @chackchackGO @iloveayu @ysc3839
我刚刚做了几轮测试,我收回上面说的话哈哈哈。无论是虚拟化 windows 系统还是 linux ,总线程一致的情况下在 vmware 上设置各种处理器数和核心数的搭配组合,经过比较简单的测试发现性能差别微乎其微。这里奉上测试记录:

宿主机 CPU:9-12900K win11 22000.918
VMware 版本号:vmware 16 pro 16.2.3 build-19376536
虚拟机测试镜像:ubuntu-22.04-live-server-amd64.iso ( ubuntu 官方镜像),安装时不选择 minimized 选项
虚拟机设置:
由于宿主机开启了 Hyper-v ,所以 vmware 虚拟机设置里“虚拟化引擎”三个勾全去掉。
移除声卡 /打印机 /USB 控制器,禁用内存页面休整,为启用了 Hyper-V 的主机禁用侧通道缓解,BIOS 引导

测试工具:使用 Lemonbench 标准模式 CPU Performance Test ( Standard Mode ,3-pass @ 30sec )

[ubuntu 虚拟机+宿主机 vmware 进程强制只调用 8 大核 16 线程]
2CPU 8core
单核 4317
多核 35842

8CPU 2core
单核 4312
多核 35869


[ubuntu 虚拟机+宿主机 vmware 进程不设置 CPU 相关性,调用 8 大核 8 小核 24 线程]
1CPU 24core
单核 4326
多核 58438

24CPU 1core
单核 4345
多核 58329

8CPU 3core
单核 4334
多核 58985


Windows 跑 CPU-Z
[Windows 10 1CPU 16core 宿主机分别调用 8 大核 16 线程 /8 大核 8 小核 24 线程]
单核:756.1 751.8
多核:7583.8 8493.9

[Windows 10 2CPU 8core 宿主机分别调用 8 大核 16 线程 /8 大核 8 小核 24 线程]
单核 752.8 755.9
多核 7577.2 8444.4


附言:
虽然看上去在大小核架构的宿主机 CPU 上,不屏蔽小核,性能测试结果似乎不会有影响,也没有出现“小核拉满,大核围观”的情况。但在实际跑应用的时候,或多或少调用会出问题。

@ragnaroks 之前也是直接改虚拟机配置文件的,后来发现有时候不太稳定?比如有时生效,有时不生效。单纯用 windows 自带任务管理器,宿主机或者虚拟机重启后相关性设置就恢复默认值了。最后还是发现 prosess lasso 可以长期保持相关性设置的稳定。另外要吐槽的是,无论用什么方法设置 VMware 虚拟机的 CPU 相关性来屏蔽小核,虚拟机开机的时候极大概率会报错:未能开启“X:\^\^.vmx"。疯狂点开机可以跳过这个错误。
ragnaroks
2022-09-07 08:49:50 +08:00
@wangyuyang3 配置文件设置的方式,要想完全对应,需要 TRUE 的线程数量与分配的数量完全一致,且对所有线程都要做出分配,如果有 128 个线程,那就要写 128 行 processor0.use = "FALSE"/"TRUE"
wangyuyang3
2022-09-07 10:04:25 +08:00
@ragnaroks 好嘞感谢!我再试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/878034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX