【VMware】VM中虚拟机设置的处理器数量和每个处理器内核数量到底是什么?
原出处:VMWare中的处理器数量和每个处理器的内核数量概念及查询方法
慕雪对原文进行了一定修改和细化
一、概念:
当我们使用vm来创建虚拟机的时候,一定会经历下面的选项。那就是给虚拟机配置分配的cpu核心数量。但vm这里的说法和我们日常生活中对CPU的X核X线程的说法并不统一。就容易混淆一些概念。
先来说说这里三个选项的含义吧
处理器数量 :虚拟的CPU颗数。
每个处理器的内核数量:虚拟的CPU内核数。
处理器内核总数:处理器内核总数 = 处理器数量 * 每个处理器的内核数量。
处理器内核总数 对应的是 物理CPU的线程数(逻辑处理器数量)。
所以配置虚拟机时,我们只需要关心 CPU实际的线程数 是多少就行了,即配置的 处理器内核总数 < CPU实际的线程数 就行了。
注:我们电脑上的一个CPU,一般都会有多个内核(单核/双核/四核/六核/八核/十六核),而一个内核一般对应一个线程。但通过Intel的超线程技术,一个核心可以对应两个线程,即可以同时运行两个线程,并行处理两个任务。
大小核怎么办?
不过,现在的新intel cpu
又出现了大小核
的说法。不过这并不影响我们来判断到底应该怎么配置。比如下图是不带大小核设计的8代i7 CPU在官网上的详细参数
而下图是最新的带大小核的13代i9在官网上的详细参数
我们可以看到,即便新的出现了性能核(大核)、能效核(小核)这样的设计,但其依旧没有脱离内核数和线程数这两个参数。
我们依旧可以依照传统的办法,通过线程数来判断应该给虚拟机的CPU上的配置
1 | 虚拟机的处理器内核总数 < 实际CPU的线程数 |
而AMD的Cpu暂时还没有出现大小核的设计,也是按照这个办法进行VM虚拟机的配置就OK了!
二、查看电脑配置参数方法:
1、网上查询对应的CPU参数,一般可以去官网查询得到
2、打开windows的任务管理器,先展开视图,再找到“性能”界面。
- 内核:即CPU核心数。
- 逻辑处理器:即线程数。
3、右键 “我的电脑”–“管理”–“设备管理器”
“处理器”项下面显示几条记录即代表有几个逻辑处理器(线程数)。
三、配置论证参考
知道了自己的CPU线程数,就可以来验证一下我们的理论是否正确了
1 | 虚拟机的处理器内核总数 < 实际CPU的线程数 |
实际硬件参数: 6核12线程
配置成功
配置失败
四、linux查看cpu核心数/线程数
我使用下图的配置了一个deepin的虚拟机
进了虚拟机,打开终端后,可以用下方的几个命令来查询你的cpu数量是否和上文所述一致
1 | # 查看cpu核心数 |
可以看到,在deepin里面执行这些命令的结果和预期完全一致!是4核心8线程的系统!
1 | $ cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l |
总结
根据上面的操作,可以确定,只要你配置的处理器内核总数
小于你CPU的实际线程数,就不会出现问题。但一般情况下,我们还是遵循最常用的一个核心两个线程
配置,将每个处理器的内核数量设置为2,再去对应设置处理器数量,比如
- 处理器数量2,每个处理器的内核数量2(2核4线程)
- 处理器数量4,每个处理器的内核数量2(4核8线程)
- 处理器数量6,每个处理器的内核数量2(6核12线程)
- 以此类推
处理器数量最好设置为2的倍数,毕竟你也没听说过3核和5核的CPU吧?😂不过vm似乎也不允许选择奇数。
在我的使用场景中,vm是用来装linux进行学习和开发的。对于不带GUI的linux来说,2核4线程都是杠杠的了。更吃紧的还是内存!如果是不带GUI的linux,建议2G起步,4G往上足够用。
需要注意的是,如果你和我一样,需要用vscode的remote-ssh功能连接linux进行代码编写,那最好是4G内存起步!(2G实测有点卡,1G根本没法用)