可以使用高级虚拟 NUMA 属性自定义虚拟 NUMA 使用情况。

表 1. 高级 NUMA 属性
属性 描述 默认
cpuid.coresPerSocket

确定每个虚拟 CPU 插槽的虚拟内核数。如果该值大于 1 且虚拟机具备虚拟 NUMA 拓扑,则还可确定虚拟 NUMA 节点的大小。如果知道每个物理主机精确的虚拟 NUMA 拓扑,则可以设置此选项。

1
numa.autosize

设置此选项时,虚拟 NUMA 拓扑中每个虚拟节点的虚拟 CPU 数等于每个物理节点的内核数。

FALSE

numa.autosize.once

当使用这些设置创建虚拟机模板时,请确保这些设置在您以后每次打开虚拟机电源时保持不变。如果修改了虚拟机上配置的虚拟 CPU 数,则需要重新评估虚拟 NUMA 拓扑。

TRUE

numa.vcpu.maxPerVirtualNode

如果 cpuid.coresPerSocket 严格限定为 2 的幂,则可以直接设置 numa.vcpu.maxPerVirtualNode。在这种情况下,请不要设置 cpuid.coresPerSocket

8

numa.vcpu.min

虚拟机中生成虚拟 NUMA 拓扑所需的虚拟 CPU 的最小数目。

9

numa.vcpu.maxPerMachineNode

同一虚拟机中可同时调度到某个 NUMA 节点上的虚拟 CPU 的最大数目。使用该属性将不同的 NUMA 客户端强制分配到不同的 NUMA 节点可确保最大带宽。

运行虚拟机的物理主机上每个节点的内核数。

numa.vcpu.maxPerClient

NUMA 客户端中的虚拟 CPU 的最大数目。客户端是由 NUMA 作为单个实体进行管理的一组虚拟 CPU。默认情况下,每个虚拟 NUMA 节点为一个 NUMA 客户端。但是,如果虚拟 NUMA 节点大于物理 NUMA 节点,则单个虚拟 NUMA 节点可由多个 NUMA 客户端支持。

等于 numa.vcpu.maxPerMachineNode

numa.nodeAffinity
限制可在其上调度虚拟机的虚拟 CPU 和内存的一组 NUMA 节点。
注: 如果限制 NUMA 节点关联性,可能会影响 NUMA 调度程序为确保公平性在 NUMA 节点之间再平衡虚拟机的功能。仅在考虑再平衡问题后指定 NUMA 节点关联性。
numa.mem.interleave 指定分配给虚拟机的内存是否在所有 NUMA 节点(其上运行作为其组成部分的 NUMA 客户端)之间静态交叉,且未显示虚拟 NUMA 拓扑。 有效