![VMWare NUMA 节点边界配置](https://linux22.com/image/803576/VMWare%20NUMA%20%E8%8A%82%E7%82%B9%E8%BE%B9%E7%95%8C%E9%85%8D%E7%BD%AE.png)
我一直在尝试找出 VMware 5.1 上 SQL Server 2012 的最佳 VM 配置。
VM 主机有 2 个插槽,每插槽 4 个核心运行超线程(总共 16 个 CPU),主机上总共有 48 GB 内存。
我们的 SQL Server VM 分配了 8 个 vCpu 和 32 GB 内存,查看 SQL 中的 CPU 配置时,报告显示只有一个 NUMA 节点。我担心的是 32 GB 内存分配跨越了 NUMA 边界,据我所知,这不会给我们带来最佳性能。
我们如何才能最好地配置 SQL VM 以最佳地使用主机上的 NUMA 配置?一篇文章建议向 VM 添加更多 vCpu,另一篇文章建议在 VM 上配置一些高级设置,还有一篇文章将分配给主机的内存量减少 50%。(24 GB)
任何建议将不胜感激。
答案1
您说得对,您通常希望对齐您的客户机,以便它适合单个 NUMA 节点(窄)。如果您在当前情况下确实使用宽(按内存或 CPU),我同意您将进入每个主机一个虚拟机的配置。
如果不了解 SQL Server 及其瓶颈,很难知道窄还是宽更适合所讨论的 VM。但通常来说,内存在缓解 SQL Server 的 IO 压力方面非常有效,而且通常很有帮助——所以我认为增加内存量以保持客户机窄并为其提供更多内存的长期计划是合理的。
使用您的 vSphere 版本,您可以选择让虚拟机具备 NUMA 感知能力,但这是一个非常具体的配置设置。它不能通过简单地设置虚拟机上的插槽/处理器比率来实现。
您正在寻找的高级设置值是“numa.vcpu.maxPerVirtualNode”,您的服务器上有两个物理插槽,每个插槽有 4 个超线程核心,因此将此值设置为 4。这将导致 VMware 在每个插槽上分配 4 个虚拟 CPU。
对于具有 8 个以上 vCPU 的客户机,此功能默认启用,因此对于您的客户机,此功能不会默认启用。您需要保持所有主机的配置相同,因为迁移到具有不同 NUMA 配置的主机可能不是个好消息。
更多信息:
答案2
我认为您为现有主机硬件配置了过多的虚拟机。我尽量不跨越此类主机上的 NUMA 边界……因此您的 8 个 vCPU 数量是好的,但 RAM 需要降至 24GB 或更少。我可能会从较少的 vCPU 开始,除非你知道您需要 8...如果您真的需要 8 个 vCPU,则硬件应该更大。
另请参阅:HP DL360p 具有 Intel E5-2630 NUMA 功能吗?
此环境中还会运行哪些其他系统?您的集群容量如何?您将拥有多少台主机?