vNUMA -Virtual NUMA.

vSphere ESXi was taking benefit of NUMA since long time, as ESXi only aware of NUMA node, esxi kernel has the responsibility to place vm right NUMA node. Guest OS wasn't aware but with vNUMA guest OS is also aware of NUMA, it exposes guest OS to physical NUMA. Both guest OS and applications take adavantage of NUMA optimization, which provide performance improvements within VM. vNUMA allows VMs to benefit from NUMA, even if the VM itself is larger than the physical size of the NUMA nodes.


vNUMA comes in picture when you configure vm with more than 8 vCPU and without HotAdd vCPU feature.

Now question is here, how guest OS create virtual NUMA Nodes and how it impact the performance of vm? I have performed some vCPU configuration with VM and below are the results of vNUMA nodes.


CoreInfo is the sysinternal tool, I have used to check the numa configuration at OS level as there is no inbuilt tool in Microsoft OS however, OS is linux, you can use numctl command to check numa at OS level.

Physical host configuration

CPU - 4
Core - 8
Logical Processor with HT - 64

NUMA node - 4 and 1 NUMA node have 8 cores.


1. Virtual machine configured with 1 * 9 vCPU

ESXi kernel has used 2 numa to satisfy vm cpu/memory requirement but at OS level only one numa node is detected.

2. Virtual machine configured with 3 * 4 vCPU

ESXi kernel has given 3 numa to satisfy vm cpu/memory requirement and at OS level 3 numa node is detected.

3. Virtual machine configured with 2 * 9 vCPU

ESXi kernel has given 3 numa to satisfy vm cpu/memory requirement but at OS level only 2 numa node is detected.

It has been observed with above vms configuration, calculation of numa at guest level is directly proportional to socket configured at vm level. What will happen if we configure sockets to vm, more than physical sockets of hosts. Below is the result.

Physical host configuration

CPU - 4
Core - 4
Logical Processor with HT - 32

NUMA node - 4 and 1 NUMA node have 4 cores.

1. Virtual machine configured with 9 * 1 vCPU
vm is placed to 3 numa nodes at esxi kernel and at guest os, 2 numa nodes calculated. 4 NUMA nodes are calculated and 1 numa node is configured with 4 cores. As vm is configured with 9 socket which is more than physical socket of host,  2 numa node is calculated to satisfy 9 socket of vm.

Please correct if you guys found any discrepancies.  :-)

1 comment: