ESXi 超线程编号用于亲和性设置

ESXi 超线程编号用于亲和性设置

我的服务器包含 2 个物理插槽式 Xeon CPU。每个 Xeon 都有 6 个核心,因此在一台服务器上禁用超线程后,我有 CPU 0-11。

如果我启用超线程,我的印象是逻辑 CPU 将是 0-23(核心为 0-11,超线程为 12-23)。我想为一个虚拟机分配 8 个核心 + 8 个超线程,然后为所有其他虚拟机分配 4 个核心。

我的问题围绕着这个。我读到过,对于我的系统,它将以核心 0 超线程 1、核心 2 超线程 3 等开始。但也读到过它将是核心 0、1、2 等,然后是超线程 12、13、14...哪个是正确的?我不想为超线程分配亲和力,但首先要让这个虚拟机独占访问前 8 个核心,然后再添加超线程。

目标是,如果一台服务器承受大量负载,则不会影响其他 6 台服务器,反之亦然。

答案1

为什么要禁用超线程?这直接违反了 VMware 的性能指南。

无论如何,您的编号是错误的——启用 HT 后,CPU 0、核心 0、线程 0 被 ESXi 视为 CPU 编号 0,线程 1 是 CPU 编号 1,核心 1 线程 0 是 CPU 编号 2,线程 1 是 CPU 编号 3 等等。

无论如何都不必担心,只要您向虚拟机添加第九个 vCPU,就可以将其切换到 vNUMA 模式,并且 ESXi 将根据您的实际套接字/核心/线程关系对其进行优化,而无需您执行任何操作。性能指南文档中再次介绍了这一点。

相关内容