如果您有一些占用大量内存的应用程序或者有少量的虚拟机,可能要通过明确指定虚拟机 CPU 和内存放置位置来优化性能。

如果虚拟机运行占用大量内存的工作负载(例如内存中的数据库或具有大型数据集的科学计算应用程序),指定控制将非常有用。如果已知系统工作负载很简单而且不会变化,您可能还想手动优化 NUMA 放置位置。例如,对于一个由运行 8 个虚拟机而且具有类似工作负载的 8 个处理器组成的系统,很容易进行明确地优化。

注: 大多数情况下, ESXi 主机的自动 NUMA 优化会产生良好的性能。

ESXi 为 NUMA 放置位置提供了三组控制,因此管理员可以控制虚拟机的内存和处理器位置。

可以指定以下选项。

NUMA 节点关联性
设置该选项时,NUMA 仅可以在关联性中指定的节点上调度虚拟机。
CPU 关联性
如果设置了此选项,则虚拟机仅使用关联性中指定的处理器。
内存关联性
如果设置了此选项,则服务器仅在指定的节点上分配内存。

即使指定了 NUMA 节点关联性,虚拟机仍由 NUMA 管理,但其虚拟 CPU 仅可以在 NUMA 节点关联性中指定的节点上进行调度。同样,仅可以从 NUMA 节点关联性中指定的节点上获取内存。如果指定了 CPU 或内存关联性,则虚拟机不再受 NUMA 管理。这些虚拟机的 NUMA 管理在移除 CPU 和内存关联性限制后有效。

手动 NUMA 放置位置可能会干扰 ESXi 资源管理算法,这种算法在系统之间公平地分发处理器资源。例如,如果将具有占用大量处理器的工作负载的 10 个虚拟机手动置于一个节点上,并且仅将 2 个虚拟机手动置于另一个节点上,则系统不可能为所有的 12 个虚拟机赋予相等份额的系统资源。