wb2
Contributor
Contributor

numa and sizing VMs with cpu/cores


My physical server is 4 cpu, 6 cores each.  I'd like to add additional resources to a couple of my virtual machines.  I don't understand the whole numa thing correctly, but if I do I believe I should add the cpu resources in multiples of 6.  So if I add additional CPUs, add six cpus with single cores each.  Do I have this right?

0 Kudos
9 Replies
homerzzz
Hot Shot
Hot Shot

This technical paper explains it quite well.

https://www.vmware.com/resources/techresources/10345

0 Kudos
homerzzz
Hot Shot
Hot Shot

Basically, if your NUMA node is 6 cores, a VM with 6 vCPUs will fit into one NUMA node. A 12 vCPU VM would be split into two 6 core NUMA nodes, so two NUMA homes. The size of your NUMA node on your server depends on the architecture and whether or not you have hyperthreading enabled.

0 Kudos
wb2
Contributor
Contributor

I assume hyperthreading is turned on but I'll have to double check.  What would the recommend multiple be if it is on?

0 Kudos
homerzzz
Hot Shot
Hot Shot

What kind of hardware is it? If your NUMA node is a 6 core socket with hyperthreading, a 12 vCPU VM will be assigned to one socket. Without Hyperthreading it will be assigned to two sockets. I do not know that increasing vCPU in multiples matters. There are many other factors that will affect performance. You can always monitor the NUMA stats for these VMs using ESXtop. This will show if the NUMA nodes are balanced and the percentage of local memory access by the VMs...  N%L

0 Kudos
wb2
Contributor
Contributor

It's a Dell PowerEdge R910.  4 cpu, 6 cores each.

0 Kudos
homerzzz
Hot Shot
Hot Shot

What vCPU configuration do your VMs that you want to increase currently have? What I said earlier applies to that hardware you have.

0 Kudos
wb2
Contributor
Contributor

They're currently at 6 vcpus with 1 core each.  I had them at 4vcpus at 4cores each.  After reading some of the performance tuning, I figured this was not the way to go.  I have a database server that is processing record updates every 3 hours.  It probably equates to 15MB of info.  Not really that much, but probably in the thousands of records.  It's bogging down and eventually runs out of virtual memory on the VM.  I changed up the cpu configuration but it doesn't seem to be making a difference.  Maybe I should try enabling jumbo frames now? 

0 Kudos
homerzzz
Hot Shot
Hot Shot

As far as I know, outside of licensing and OS versions (Windows 2008 R2 Standard vs Enterprise for example), total vCPUs is what counts. For example, 6 vCPU configured as 6 virtual sockets and 1 core is the same performance wise as 3 virtual sockets and 2 cores. That still totals 6 vCPU. So you went from 8 vCPU down to 6 vCPU. Both fit in one NUMA node.

Sounds to me like you are having memory issues with these VMs. Running low on virtual memory means you either need more memory, or you have a memory leak, or you are running a 32 bit OS etc.

0 Kudos
wb2
Contributor
Contributor

It W2k8 R2 64bit.  App is 32bit.  It's very possible there is a memory leak, but the same app DRs to another when needed and the performance is just fine.  On the other site it's sitting on a fast SAN/host setup though.

0 Kudos