Unsolved
This post is more than 5 years old
199 Posts
0
15493
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?
wwn1
31 Posts
0
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:
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.
Jingyi1
199 Posts
0
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.
wwn1
31 Posts
0
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.