I’ve been asked a few times recently how to determine what virtual topology vNUMA recommended and created for us and besides looking at the obvious guest OS for the final result, you can also check the vmware.log file for more detailed information.
Additional background here.
Examples:
1) “Wide and “Flat” virtual machine – default configuration
This virtual machine was configured with 20 vCPUs (20 sockets and 1 corespersocket) on a 4 socket, 10 core, hyper-threading enabled, host:
numa: Exposing multicore topology with cpuid.coresPerSocket = 10 is suggested for best performance
numaHost: 2 virtual nodes, 20 virtual sockets, 2 physical domains
Here we see vNUMA has automatically set corespersocket = 10, which matches the physical topology, and presented 2 “virtual nodes” aka NUMA nodes.
2) Spanning pNUMA nodes – manually configured
This virtual machine was configured with 20 vCPUs (1 socket and 20 corespersocket) on a 4 socket, 10 core, hyper-threading enabled, host:
numa: Setting.vcpu.maxPerVirtualNode=20 to match cpuid.coresPerSocket
numaHost: 1 virtual nodes, 1 virtual sockets, 2 physical domains
Here we see vNUMA has respected the manual configuration and set the vNUMA advanced setting maxPerVirtualNode = 20 which doesn’t match the physical topology. 1 “virtual nodes” aka NUMA node is presented which spans 2 “physical domains,” aka pNUMA nodes.
So searching vmware.log for ‘numa’ and ‘numaHost’ will provide these details and again a reminder to let vNUMA provide the optimal configuration when possible.