Start a Conversation

Unsolved

This post is more than 5 years old

15493

May 8th, 2012 22:00

VMware virtual sockets vs. cores per socket for better performance

When you need to create a 4 CPU VM, have you ever wondered how you can configure CPU to get best performance like me? should it be a 1 socket with 4 cores per socket, or 2 sockets with 2 cores per socket or even 4 sockets single core CPU? I did a little research on this and found this has been discussed before. http://community.spiceworks.com/topic/189740-vmware-virtual-sockets-vs-cores-per-socket-which-give-better-performance

Below are their recommendations:

  • There is no difference as long as VM has same quantity of cores of CPU.
  • It's recommended to  configure with fewer socket and more cores because some software might be charged on per socket licese model.
  • BP is to assign only needed CPU (normally 1 vCPU) and monitor the performance to adjust.

How do you think about their conclusion? Is there anything else to add?

31 Posts

May 9th, 2012 09:00

In general, this depends on the OS and applications.

VMware multicore virtual CPU support lets you control the number of cores per virtual CPU in a virtual machine. This capability lets operating systems with socket restrictions use more of the host CPU's cores, which increases overall performance.

 

You can configure how the virtual CPUs are assigned in terms of sockets and cores. For example, you can configure a virtual machine with four virtual CPUs in the following ways:

 

  1. Four sockets with one core per socket
  2. Two sockets with two cores per socket
  3. One socket with four cores per socket

Using multicore virtual CPUs can be useful when you run operating systems or applications that can take advantage of only a limited number of CPU sockets. Previously, each virtual CPU was, by default, assigned to a single-core socket, so that the virtual machine would have as many sockets as virtual CPUs.

So if my VM OS can support 4 sockets, I would configure the VM as listed in Option 1.

199 Posts

May 11th, 2012 00:00

I also want to add, if Hyper Threading is enabled, the quantity of vCPU is doubled. The good part is these added CPUs are virtual CPUs, most software are licensed on physical CPUs model not on Virtual ones.

31 Posts

May 11th, 2012 06:00

Jingyi, you bring up a good point.

While hyperthreading does not double the performance of a system, it in fact doubles the number of logical CPUs. Those logical CPUs share most of the core's resources such as memory caches and

functional units. Usually, such logical processors are called threads.

 

Hyperthreading performance improvements are highly application-dependent, and some applications might see performance degradation with hyperthreading because many processor resources (such as the cache) are shared between logical processors.

No Events found!

Top