How would I know if I should be disabling virtual NUMA on VMs running older applications?

Solution 1:

The article: "NUMA Deep Dive Part 1: From UMA to NUMA" recommends "Intel Memory Latency Checker v3.5", a shorter article "VMware vSphere — Why checking NUMA Configuration is so important!" (from where I got that link) explains:

"The main take away is, that the cpu — memory access is always the fastest, when the cpu can access its local memory. NUMA Nodes are CPU/Memory couples. Typically, the CPU Socket and the closest memory banks built a NUMA Node. Whenever a CPU needs to access the memory of another NUMA node, it cannot access it directly but is required to access it through the CPU owning the memory."

So configure your NUMA correctly, with sufficient memory for each CPU, before booting your VMM and allocating vNUMAs.

Under VMware you can use esxtop, type "m", "f", and "G" to enable NUMA information. Read more about esxtop here: YellowBricks and the ancient docs at VMWare: "Interpreting esxtop Statistics".

Once NUMA is tuned you can test that your allocation of vNUMA isn't calling on non-local memory using Intel's tool.