当打开虚拟机电源时,ESXi 会向其分配主节点。虚拟机仅在其主节点内的处理器上运行,而且新分配的内存也来自该主节点。
除非虚拟机的主节点更改,否则虚拟机仅使用本地内存,从而避免了与其他 NUMA 节点的远程内存访问相关联的性能损失。
当打开虚拟机的电源时,会为其分配初始主节点以使 NUMA 节点间的整体 CPU 和内存负载保持均衡。由于在大的 NUMA 系统中节点间的滞后时间变化很大,ESXi 会在引导时确定这些节点间滞后时间,并在初始放置虚拟机(比单个 NUMA 节点更宽)时使用此信息。这些宽的虚拟机放置在彼此靠近的 NUMA 节点上,以实现最低的内存访问滞后。
对于仅运行单个工作负载(例如基准配置,它不会在系统运行过程中发生变化)的系统,仅初始放置方法通常已足够。但是,此方法无法保证支持工作负载变化的数据中心级系统的良好性能和公平性。因此,除了初始放置之外,ESXi 还支持在 NUMA 节点之间动态迁移虚拟 CPU 和内存,以促进 CPU 均衡和扩大内存覆盖区域。