找回密码
 加入我们
搜索
      
查看: 5963|回复: 8

[软件] 在ESXi 6.7版虚拟机配置选项中CPU和每个插槽内核数之间到底是什么对应关系?

[复制链接]
发表于 2024-7-24 15:54 | 显示全部楼层 |阅读模式
物理服务器有两颗E5-2650 v3,安装的ESXi 6.7版,硬件信息20 CPUs x Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz,超线程已启用

在创建配置虚拟机时,对CPU和每个插槽内核数这两项一直弄不太明白是什么关系,是指的在给定CPU数量后,通过对每个插槽内核数的选择设置,来控制逻辑核在两颗物理CPU上的布局分配吗?

例如我要创建一个Windows 10虚拟机,CPU要求配置为4核8线程,具体该怎么设置呢?

是将CPU设为4,每个插槽内核数也设为4,此时插槽数显示为1,表示这4个逻辑核位于1号通道CPU上,2号通道未分配,因为ESXi不允许用户干预超线程,是由底层自动管理的,所以在Windows虚拟机环境下任务管理器显示的是4个核,但实际上已经隐性包含另外4个超线程逻辑核了,是这样吗?

捕获.JPG
发表于 2024-7-24 16:47 | 显示全部楼层
调度关联性,输入0-7就是4核8线程,而且是cpu0上的前8个线程

要是输入0-3,20-23,就是cpu0的前两个物理核+cpu1的前两个物理核
发表于 2024-7-24 17:30 | 显示全部楼层
这个你可以去翻vmware的官方文档,虚拟处理器的部分,我记得是挺详细的
按我理解是虚拟机内部并没有线程的概念,你的4核8线程可能是没办法实现的,对应的关系其实很简单,物理机核心数量+线程数量=虚拟机可用CPU核心,不管你怎么分配,都没法实现4核心8线程,一个核心对应一个线程,如果你想分配8个线程,直接用1个CPU插槽,分配8个内核即可,剩下的交给虚拟机
发表于 2024-7-24 21:49 | 显示全部楼层
虚拟机没有超线程的概念

你需要8个核心就分配8个CPU就行了

你截图里的插槽是对应物理机器上几个实体CPU的概念(非物理核心数)
因为有一些商用软件是按照插槽CPU和核心数来进行授权,也可能一些超大型软件,存在一些特殊需求,所以这里才让你选择具体怎么进行分配

你图中的设置,安装完虚拟机操作系统后,将会显示为1CPU4核心(线程)
此处如果你第一个CPU设置为8,而每插槽设置为4
你安装虚拟机系统后,会显示为2CPU 4核心(线程)

至于1CPU8核心,与2CPU4核心,最终都还是你物理CPU上的线程在跑
普通用户我建议插槽都是1比较好,因为跨CPU对一些软件来说可能会有负优化

评分

参与人数 1邪恶指数 +1 收起 理由
Mufasa + 1 支持一下

查看全部评分

发表于 2024-7-24 21:50 | 显示全部楼层
你还不能理解电话,随便设置一下,安装个win10

然后你esxi更换不同的CPU设置,在系统里看看你就能明白了
发表于 2024-7-25 10:36 | 显示全部楼层
本帖最后由 q6q32f8m 于 2024-7-25 10:41 编辑

插槽数对应多路CPU,并对应服务器上的NUMA节点,主板上只有一个CPU的话,插槽数无脑填1就行。Windows专业版最多只支持双路CPU,插槽数大于2就无法识别。插槽数设置大于1也没什么用,服务器多路CPU的时候才会用。楼主双路CPU的话如果一个虚拟机需要超过单CPU核数的话,才需要插槽数设为2。
另外,CPU核数设置指的是逻辑核心也就是线程数,设置4核实际是2核4线程。

评分

参与人数 1邪恶指数 +1 收起 理由
Mufasa + 1 非常赞同

查看全部评分

发表于 2024-7-25 16:03 | 显示全部楼层
本帖最后由 Satan023 于 2024-7-25 16:12 编辑

实际上无所谓的 这都老黄历了 最初vmware出这个功能是为了应付针对cpu数的授权 你调10个socket每个socket 1核or1个socket 10个核对性能影响没一根毛。。。你cpu热插拔别开就行了 开了对numa有影响

我以前研究过这个问题,你看着两个就明白了:
https://ewams.net/?date=2020/04/ ... sxi_which_is_better
https://blogs.vmware.com/perform ... rules-of-thumb.html
发表于 2024-7-25 17:29 | 显示全部楼层
据我所知,最初一些软件授权是针对CPU个数的,移动到虚拟机下也保留了这个概念。
另外有线软件只能在一个CPU上运行,不能多CPU,但支持多核心,所以虚拟机保留了核心数和插槽数的概念。
还有某些场景下需要对CPU进行热添加,这个时候就只能加CPU插槽数,且加的vCPU需要跟之前的核心数一致,而不能对现有CPU加核心。
发表于 2024-7-25 17:43 | 显示全部楼层
ESXi 不手工设置,虚拟核心与物理核心没有对应关系,这也是建议的状态。

那个插槽数,对于Windows来说,设置为1就好了。
设置8核心,每个插槽8核心,完事。

至于虚拟机的8个核心由哪些物理核心来跑,这个就别去设置了,自动最好。
自动状态下,机器负荷不重,会优先全部用物理核心跑,负荷重了才会用超线程。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-26 17:55 , Processed in 0.012363 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表