NUMA question

brucexx

Renowned Member
Mar 19, 2015
265
9
83
DO I need to enable numa on VM with 2 logical cores setup with Hyper-threading ?

I understand I need it with more than 2 cores for obvious reasons but I though I read somwhere that if there are only 2 cores and it is a CPU with Hyper-threading (in my case Xeon v4 family) I don't have to.

Let me know what you think...

Thank you
 
Hi,

NUMA you need if you have more than one CPU socket.
And if you have more than one socket you should activate it only,
if a VM has more cores than one socket got.
 
Thank you

I am not sure if I understand. I thought that numa had 2 main objectives in multi socket hyper-visor:
1 allocate the logical cores for a VM within the same CPU socket and
2 allocate memory for a logical core within the same CPU socket
...so there is no penalty when processing. So if I understand correctly numa does not allocate the logical cores per VM within the same socket ? I would assume then that the hyper-visor does it ?

let me know.
 
The NUMA flag makes the VM aware of NUMA architecture.

I would assume then that the hyper-visor does it ?
You can also run a non NUMA VM on a NUMA Node, if you use only the memory and cores of one Node.
 
Hi,

NUMA you need if you have more than one CPU socket.
Hi,
some opterons have NUMA with one socket, because inside the CPU are two of them.
And if you have more than one socket you should activate it only,
if a VM has more cores than one socket got.
Why? Or better, what is the drawback if I enable numa on VMs with less cores than on cpu have (incl. HT)?

Udo
 
Numa
Why? Or better, what is the drawback if I enable numa on VMs with less cores than on cpu have (incl. HT)?
A little cpu overhead and you use numa instead of stay on one socket.
 
The NUMA flag makes the VM aware of NUMA architecture.


You can also run a non NUMA VM on a NUMA Node, if you use only the memory and cores of one Node.
So if I have a NUMA server with 2 sockets, and I want a VM to run on (and use the memory of) a single socket (NUMA node) only, then I should disable the NUMA option and the hypervisor will make sure it will stay on one NUMA node?

The wiki says the exact opposite:
https://pve.proxmox.com/wiki/NUMA
"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."

So I'm kinde confused, what's the best practive on NUMA servers to make sure that all my VMs stay on one node only?
None of them use more resources then a single node cpu or memory wise...
 
Last edited:
Me too I'm still confused by reading all the different posts here in the forum. It would be nice if there would be a complete numa guide somewhere.