NUMA

From Proxmox VE
Jump to navigation Jump to search

Non-uniform memory access (NUMA) and CPU pinning (Processor affinity) are technologies that try to avoid the bottleneck between the CPUs and memory regions on multi-socket computers.

If you enable this feature, your system will try to arrange the resources such that a VM does have all its vCPUs on the same physical socket and only uses memory that is physically connected to that socket.

Host requirements

As a rule of thumb your system is NUMA-aware if you have more than one CPU.

# numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23
node 0 size: 128837 MB
node 0 free: 1117 MB
node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31
node 1 size: 129021 MB
node 1 free: 63 MB
node distances:
node   0   1 
  0:  10  21 
  1:  21  10 

This example system has two NUMA nodes each of which has 128 GB of memory and 16 logical cores.

VM configuration

Enabling NUMA can boost VM performance but is also a requirement for hot-pluggable CPU and Memory. If you didn't enable it with the VM creation wizard you can do so on the hardware tab. Choose "Processor" and press "edit".