Carl_H
Contributor
Contributor

Understanding physical / virtual sockets and cores

Hi. I am fairly new to vmware and need something clarified please.  I have the following setup.

HP ProLiant ML350p Gen8

- 1 Processor - Intel Xeon E5-2603 v2 (1.8GHz/4-core)

- ESXi 5.1.0 V8

- 1 VM running Win Server 2012

On the VM, when I go into Edit Settings -> CPUs it shows the following:

- Number of virtual sockets: 1

- Number of cores per socket: 1

- Number of cores: 1

As this is the only VM running on the hardware, am I not using the full resources of the server.  It implies I am only using one of the 4 available cores.  Am I correct in my assumptions and if so, what do I do to provide more resources to the VM?

Thanks for helping a newbie.

0 Kudos
5 Replies
ashleymilne
Enthusiast
Enthusiast

You can simply add a second core if you wish by changing the number of cores per socket to 2. You would need to power down the machine to perform this change.

a_p_
Leadership
Leadership

Welcome to the Community,

yes, you are correct. However, always keep in mind that the ESXi host itself also requires some CPU resources.

The ESXi hosts determines the number of "logical processors" which is the number physical CPUs * number of cores [times 2 if HyperThreading is available/enabled]. ESXi then schedules the CPU resources based on the number CPUs/Cores you configure for a VM.

André

Carl_H
Contributor
Contributor

Thank you both for responding. So, am I right to assume I cannot assign all 4 cores as the ESXi host requires access to resources. Therefore I should assign the 2 cores to the VM and leave the other two to the ESXi host?

0 Kudos
ashleymilne
Enthusiast
Enthusiast

Assigning all cores to your one VM would be overkill for the VM, but it would still work, Esxi would be strained for CPU resources but I believe it would manage but is probably not recommended. Yes, you could assign a second core to your existing VM leaving 2 cores available for the system.

0 Kudos
a_p_
Leadership
Leadership

The ESXi host will take care of overcommitment, i.e. it will make sure that it gets its shares. You can even provision more virtual CPUs to VMs as physically present in the host (e.g. create 10 VMs with 1 CPU each). Unless each of the VM's puts full load on the CPU, you may not even notice performance issues. In case you are interested, take a look at http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-CPU-Sched-Perf.pdf.

André

0 Kudos