我如何知道是否应该在运行旧应用程序的虚拟机上禁用虚拟 NUMA?

我如何知道是否应该在运行旧应用程序的虚拟机上禁用虚拟 NUMA?

来自 VMware 的文档:

虚拟 NUMA 拓扑适用于硬件版本 8 的虚拟机,当虚拟 CPU 数量大于 8 时默认启用。您还可以使用高级配置选项手动影响虚拟 NUMA 拓扑。

假设我有一个虚拟机,我为其分配了 8 个 CPU,它运行的是虚拟 NUMA。如果我在服务器上运行一个旧的非 NUMA 感知应用程序,那么它的运行效果会不会很差,或者至少不会像在非 V-NUMA 模式下那样好?

我假设 V-NUMA 是以这种方式启用的,因为如果应用程序供应商建议使用 8 个或更多核心,则该软件很可能支持 NUMA。或者是否有许多应用程序内置了多核支持,但不支持 NUMA?

我如何识别由该可能的问题引起的瓶颈?

编辑:有没有想过 vCenter 中是否有用于监控远程 NUMA 调用的指标?

答案1

文章:“”NUMA 深度探究第 1 部分:从 UMA 到 NUMA“建议”英特尔内存延迟检查器 v3.5“,一篇较短的文章”VMware vSphere — 为什么检查 NUMA 配置如此重要!“(我从哪里得到这个链接)解释说:

“主要结论是,当 CPU 可以访问其本地内存时,CPU 内存访问总是最快的。NUMA 节点是 CPU/内存对。通常,CPU 插槽和最近的内存组构成 NUMA 节点。每当 CPU 需要访问另一个 NUMA 节点的内存时,它不能直接访问,而需要通过拥有内存的 CPU 来访问。”

因此,在启动 VMM 和分配 vNUMA 之前,请正确配置 NUMA,并为每个 CPU 提供足够的内存。

在 VMware 下,您可以使用 esxtop,键入“m”、“f”和“G”以启用 NUMA 信息。在此处阅读有关 esxtop 的更多信息:黄砖以及 VMWare 的古老文档:“解释 esxtop 统计数据“。

一旦 NUMA 调整完毕,您就可以使用英特尔的工具测试您的 vNUMA 分配是否没有调用非本地内存。

相关内容