VMware Cloud Community
PePierias
Enthusiast
Enthusiast

ESXi 7.0.3: why are Windows Server 2022 VMs created with 2 cores per socket?

I have been reading a lot of material from VMWare explaining that it would be best for VMWare >= 6.7 to create VMs with 1 core per socket. So a multi-vCPU VM would need as many sockets as vCPUs, taking into account that 1 core per socket should exist.

Today on my ESXi 7.0.3 host I created a couple of Windows Server 2022 VMs with the AD roles. After the VMs were created I noticed  that ESXi used a default of 2 vCPUs for each VM, arranged as 1 socket with 2 cores per socket!

I'd expect ESXi to follow it "best practice" of sorts and simply create 2 sockets with 1 core per socket.

Can someone explain if :

  1. this is expected behaviour
  2. whether modifying the VM to have 2 sockets with 1 core per socket would yield better performance (NUMA etc).

 

Labels (2)
0 Kudos
6 Replies
Sachchidanand
Expert
Expert

Please go through the following documents that will help you understand this:

https://blogs.vmware.com/performance/2017/03/virtual-machine-vcpu-and-vnuma-rightsizing-rules-of-thu...

https://kb.vmware.com/s/article/1010184

Regards,

Sachchidanand

0 Kudos
Kinnison
Commander
Commander

Hello,


To put it simply (maybe too much), this is so because it is a sort of "default" template depending on the selected guest operating system applied when you create a virtual machine.


Regards,
Ferdinando

PePierias
Enthusiast
Enthusiast

I've read both articles before posting these, as well as some links contained in the first one, that basically indicated that if no limitation exists regarding software licensing within the VM (Exchange, Oracle etc), then it would be better to have 1 core per socket. Hence a 10 vCPU VM would have 10 vsockets, each with one vcore.

0 Kudos
PePierias
Enthusiast
Enthusiast

@Kinnisonthanks for the information. It's a bit strange seeing that the server 2022 (as well as the 2019 one) template chooses this allocation.

Addressing my own concern here and after rephrasing a bit, I'd ask this: how would you go for setting up a Windows 2022 server, considering that it will have say 4vCPUs? 4 vsockets of one vcore, 2 vsockets having 2 vcores each, or a single vsocket with 4 vcores? In article 1010184 all are "valid" setups, however from what I've read (in general) so far and in the context of optimal NUMA setup, 4 vsockets with 1 vcore each should be setup.

0 Kudos
Kinnison
Commander
Commander

Hello,


In my opinion the question about vNUMA topic deserves some more insight which, for example, you can find in Mr. Dennemann's blog article here: https://frankdenneman.nl/category/numa/


Regards,
Ferdinando

0 Kudos
PePierias
Enthusiast
Enthusiast

Thanks for the link. And boy we are talking about a zillion of info here. Luckily, in https://frankdenneman.nl/2021/12/02/vsphere-7-cores-per-socket-and-virtual-numa/ I've stumbled into the following paragraph:

"Looking at the comments, I notice that there is some confusion. Keeping the default means that you will use 2 Cores per Socket for the new Windows systems. The minor imbalance of vCPU distribution within the VM should not be noticeable. The Windows OS is smart enough to distribute processes efficiently between these NUMA nodes setup like this. The compounded effect of many VMs within the hypervisor and the load-balancing mechanism of the NUMA scheduler and the overall load frequencies (not every vCPU is active all of the time) will not make this a problem."

So I could leave them as they are (minor improvement by setting one vcore per vsocket).

 

0 Kudos