VMware Cloud Community
androidtopp
Contributor
Contributor

Best practices for vCore/vSocket configurations

Now that ESXi 5 has exposed the "multiple vCores per vSocket" settings in the New VM wizard, I'm wondering if there are any guidelines for the use of this feature. I know that in terms of the number of physical cores a VM can use, there's no difference between 4 vSockets, each with 1 vCore and 1 vSocket, with 4 vCores: In both cases, there are 4 vCores in the VM, and thus up to 4 of the host cores can be used to execute workloads. And I understand that condensing those vCores in to fewer vSockets (a greater than 1:1 vCore:vSocket ratio) can help with licensing of some software: for example, Server 2003 Standard which can only operate on two sockets at a time, but can take advantage of multiple cores per socket.

But what I can't find (and apologies if I'm just missing it when I google and search the forums) is whether the vCore/vSocket layout makes a difference for any other reasons. For example, if I create a VM with 1 vSocket, and configure that vSocket with 2 vCores, how does VMware schedule the underlying pCores? Does it have to schedule all the vCores of a single vSocket using only the pCores of a single pSocket? Or can VMware schedule those vCores on any host pCore, regardless of where that core is? Does it have a preference as far as keeping scheduling pCores on the same pSocket when servicing a mulit-vCore vSocket? Technically, cores on the same socket would be able to exchange information slightly faster in some situations, so there might be a slight advantage there? Maybe?

Additionally, what is the best practice in cases where I don't have a need for fewer vSockets, or where I'm not using software that has socket/core restrictions? I notice that converting a version 7 VM with n vCPUs results in a version 8 VM with n vSockets, each with a single vCore. So is the best practice to continue going with "single core" vSockets?

Thanks in advance,

Andrew

0 Kudos
2 Replies
peetz
Leadership
Leadership

This is a good question, and I would also like to find out more about if and how the ESXi scheduler treats multi-core VMs differently from single-core VMs.

All I could find out so far is that you can build "virtual NUMA" configurations for multi-core VMs, and that there are advanced scheduling settings to control how virtual NUMA nodes are scheduled on physical host NUMA nodes.

This can be found here: http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.vsphere.resmgmt.doc_50/GUID-17B629DE-7...

However, this information is not very detailed ...

- Andreas

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
0 Kudos
peetz
Leadership
Leadership

There is another important info buried in the manuals: CPU hotplug works with multi-core vCPUs only if the VM uses hardware version 8.

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
0 Kudos