9

From VMware's docs:

Virtual NUMA topology is available to hardware version 8 virtual machines and is enabled by default when the number of virtual CPUs is greater than eight. You can also manually influence virtual NUMA topology using advanced configuration options.

So lets say I have a VM I have assigned 8 CPUs- its running Virtual NUMA. If I have an old non NUMA aware application running on the server would it not run very poorly or at the very least not as well as it would in non V-NUMA mode?

I assume V-NUMA is enabled like this because if an app vendor recommends 8 or more cores the software would most likely be NUMA aware. Or are there many applications with multi-core support baked in, but not NUMA support?

How would I identify a bottleneck caused by this possible issue?

Edit: Had a thought is there a metric in vCenter for monitoring remote NUMA calls?

Izzy
  • 786
  • 2
  • 8
  • 29
red888
  • 4,069
  • 16
  • 58
  • 104
  • 4
    I've deleted my proposed answer because I don't think it's what you're looking for. If i had more information on your host configuration I may be able to provide more assistance. My personal opinion is that in general vNUMA doesn't harm non-numa apps but that's not answer just an opinion. There are a large number of variables that can affect VM performance and in my years working with VMware I've never found vNUMA to be the culprit in a performance issue. – Stewpudaso Mar 11 '16 at 15:21

1 Answers1

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.

Rob
  • 320
  • 1
  • 3
  • 9