VMware 跨 NUMA 性能损失

VMware 跨 NUMA 性能损失

我遇到了虚拟 SQL Server 随机意外减速的情况,我无法将其归咎于工作负载、存储或 CPU(事实上,在主机撤离其他 VM 后,这种情况仍继续发生)。

我怀疑可能与 NUMA 配置相关 - 特别是物理内存如何映射。

运行coreinfo显示以下跨NUMA节点访问成本:

Approximate Cross-NUMA Node Access Cost (relative to fastest):
     00  01
00: 1.0 1.3
01: 1.4 1.5

这看起来很奇怪 - 我原本预计 01-01 应该更接近 1.0,并且惩罚是在节点之间。

我认为这表明内存正在 Vmware 上的第一个 pNUMA 节点上分配,并且可能会导致从第二个 vNUMA 节点访问内存的性能下降。

由于 SQL Server 具有 NUMA 感知能力,它是否可以对跨 NUMA 内存访问的影响做出假设,从而影响此场景中的性能(即,尝试将访问保留在一个节点上并避免跨 NUMA 访问)?

我可以采取什么步骤来确保内存在 pNUMA 节点之间均匀分配?

主机如下:

  • vSphere 6.7.0
  • 2 个 Xeon Gold 5217(8 核)
  • 总内存 768GB

虚拟机如下:

  • 12x vCPU(每插槽 3 个核心 = 4 个插槽)
  • 320GB 内存
  • Windows 2012 R2
  • SQL Server 2016 企业版

编辑:x-mem 显示以下内容,与以下内容不匹配coreinfo

xmem-win-x64.exe -j6 -s -R -l -f test.csv -n5

         00      01
00  1.21124 1.18519
01  1.19831 1.18695

相关内容