VMware / SQL – 物理与逻辑核心 – 启用HT时要分配多less个vCPU

我们有一个ESX主机:

它具有2个CPU×8个内核,并启用了HT。 所以,共有16个物理核心或32个逻辑核心。

它有一个专用的SQL虚拟机(没有其他虚拟机在这个主机上运行),它有16个vCPU分配:

和SQL NUMAconfiguration如下所示:

这是否意味着这16个vCPU映射到1个CPU中的16个逻辑核心,另一个包含16个逻辑核心的CPU是否闲置?
将它增加到32个vCPU有什么不同?

我发现这篇文章 ,说不分配更多的vCPU比实际的物理核心,不pipe逻辑核心。 为什么不?

他们之所以不推荐这么做,是因为HyperThreading在VMware中的工作原理,并不是计算能力的两倍,根据一些testing,更多的是10%。 所以你不应该定义比物理内核更多的vCPU。 如果那个巨大的虚拟机并不是那个主机上的独立虚拟机,那么您可能还想记住,当这个虚拟机的时钟周期运行时,其他虚拟机上将不会发生太多的事情,因为这个虚拟机会占用所有可用的内核,如果不是所有16个内核都可用,它将不会运行。

MSSQL是一个处理器猪,并有很好的理由。 这也会降低HT的有效性,因为HT仅分割处理器的负载,但不会使计算增加一倍。 如果您要运行高性能SQL服务器,则可能需要考虑在vSphere中分配核心关联性规则,并防止其他虚拟机针对这些核心运行。 我知道它打败了虚拟化的目的,但仍然有一些优势。