VMware Cloud Community
baber
Expert
Expert

why use vNUMA

HI

i have read about vNUMA  and now it will be active on vm when my virtual machine has vcpu more than 8.  vnuma use from 2 difference bank for memory local bank and remote bank but now i am confused this is a good feature or bad because local bank memory is better than remote bank memory i think if disable remote bank memory is better

Can you help me?

Best regards

Babak

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
12 Replies
MKguy
Virtuoso
Virtuoso

vNUMA is about NUMA nodes that consist of one or more physical CPU (sockets) and associated memory banks, not just memory alone.

When you configure a vNUMA VM on a host with 2 physical CPU sockets (2 NUMA nodes), the VM's vCPUs are distributed on cores of both sockets and the GuestOS is being presented this layout as a virtual NUMA topology.

The cores on both NUMA nodes each have their own local memory banks, as well as the ability to access the remote memory managed by the other NUMA node through the CPU interconnect, which is slower. In the optimal case each CPU only accesses its own local memory, so no NUMA imbalance occurs. Note that how ESXi backs physical memory pages locally and how the guest OS/application actually accesses them are two different things. As long as you have a NUMA-aware OS (practically every modern OS that's not older than ~6-7 years) you should be fine though.

You can check the ESXi-side actual NUMA memory locality distribution in the (r)esxtop memory view.

I also recommend you to check out the following articles:

vNUMA - VMware vSphere Blog - VMware Blogs

NUMA – frankdenneman.nl

-- http://alpacapowered.wordpress.com
0 Kudos
baber
Expert
Expert

thanks

1 -for example if i have a HP server DL380 with 2 physical cpu totaly 32 core can i say we have 4 nUMA ?

2- i understand local memory bank is best performance and remote bank will be active when local memory bank is full is this correct ?

3 - with HP DL380  with 2 physical cpu if i want create VM best performance for create is create vm with 2 cpu socket and 2 core per socket(4vCPU) or create vm with 4socket and 1 core per socket (4vCPU)

Best ergards

Babak

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
MKguy
Virtuoso
Virtuoso

1 -for example if i have a HP server DL380 with 2 physical cpu totaly 32 core can i say we have 2 nUMA ?

You have 2 NUMA nodes. Node 0, which consists of CPU0 and its associated memory banks and Node 1, which consists of CPU1 and its own memory banks.

2- i understand local memory bank is best performance and remote bank will be active when local memory bank is full is this correct ?

ESXi will try to use local memory whenever possible to back memory pages, but it also depends on the way the OS/application accesses memory. In most general application cases however, remote memory access is not a noticeable performance degradation though.

3 - with HP DL380  with 2 physical cpu if i want create VM best performance for create is create vm with 2 cpu socket and 2 core per socket(4vCPU) or create vm with 4socket and 1 core per socket (4vCPU)

First of all, this example is irrelevant to vNUMA because you have 8 or fewer vCPUs (unless you edit the numa.vcpu.min parameter, see: Advanced Virtual NUMA Attributes).

The VM will see 2 sockets with 2 cores each or 4 sockets with one core, but not a in any NUMA topology. It will just see a single flat pool of memory for all sockets because the virtual hardware is not being presented with NUMA-capabilities (think: installing a OS on an old Pentium 4 computer).

Secondly, the socket/core configuration was never intended to configure NUMA sizes, but only for licensing purposes. For vNUMA you should configure sockets only, this lets ESXi select an appropriate autosize NUMA topology to present to the Guest (again, only if you have 9 or more vCPUs). Check this article for details:

Does corespersocket Affect Performance? - VMware vSphere Blog - VMware Blogs

-- http://alpacapowered.wordpress.com
0 Kudos
baber
Expert
Expert

thanks

i inderstand if i want create a virtual machine with more than 8 Vcpu  for example 8 oor 16 vCpu that is better put socket core = 8 or 16 and core per sock = 1

this is best performance

is that ok?

Best regards

Babak

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
MKguy
Virtuoso
Virtuoso

i inderstand if i want create a virtual machine with more than 8 Vcpu  for example 8 oor 16 vCpu that is better put socket core = 8 or 16 and core per sock = 1

More than 8 means at least 9. Just 8 vCPUs is not enough.

As I explained above in the article and my post, unless it's purely for licensing reasons you should configure the number of sockets only and leave corespersocket at 1, this lets ESXi autosize a vNUMA topology that works best with your physical host hardware.

-- http://alpacapowered.wordpress.com
0 Kudos
baber
Expert
Expert

Is your means that if we waiver licenssing best performance for create new vm with more than 9 vCPU is put Sockets to 8 or 9 and Core per sockect =1 ?

2- other question is for example if i want create a vm with 16vCPU if set Number of Virtual Socket = 16 and Number of Core per socket = 1 has best performance because it use all 16 vcpu from local memory bank ?

3 - if i create a vm and set Number of Virtual Socket = 8 and core per socket = 2 performance will reduce because it will use from local memory bank and remote memory bank?

4 - in summary is that true if we increase Number of Core per socket for each vm  best formance will be reduce because in this mode system will be use more from remote memory bank ?

Is that correct?

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
baber
Expert
Expert

i am waiting for your help

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
baber
Expert
Expert

dear friend

please help me  i am waiting for you

best regards

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
vmguysa
Contributor
Contributor

Hi,

Read the previously supplied link

http://blogs.vmware.com/vsphere/2013/10/does-corespersocket-affect-performance.html

I would also suggest leaving the defaults unless you have a specific use case. you will adversely affect the entire environment.

Regards

0 Kudos
impranayk
Enthusiast
Enthusiast

Refer to VM Blog to know more about this.

vNUMA - VMware vSphere Blog - VMware Blogs

-------------------------------------------------------------------------
Follow me @ www.vmwareinsight.com
Please consider marking this answer "correct" or "helpful" if you found it useful

Pranay Jha | Blog: http://vmwareinsight.com
vExpert 2016/2017, VCAP5-DCD/DCA, VCP5-DCV, VCA-Cloud, VCE-CIA, MCSE, MCITP
0 Kudos
baber
Expert
Expert

i have read most of these articles but realy in any of them clearly not say about number of  virtual socket and core per socket now can you clearly answer me :

1- this is my server info :

HP Proliant DL380P G8

Processor Sockets =2

core per socket = 10

logical processor = 40

1- Do i have 2 NUMA ?

2- now if i want create a vm with 16 and 24vcpu what is best practice for do that ?

3-in esxi 6 if i create a vm with more than 8vcpu will it auto numa ?

Best regards

Babak

Please mark helpful or correct if my answer resolved your issue.
0 Kudos
baber
Expert
Expert

i have readen many documents untilll today bt realy confused if you can help me clearly about number of sockets and core per socket

Please mark helpful or correct if my answer resolved your issue.
0 Kudos