Virtual CPU on VMware

I'm using VMware 5.5 essential kit

For CPU assignment, which one is preferred, increase number of Virtual CPu or core ? What's virtual CPU ? Suppose my physical server has 1 CPU with 16 cores ...

Who is Participating?
Andrew Hancock (VMware vExpert / EE MVE^2)Connect With a Mentor VMware and Virtualization ConsultantCommented:
1 vCPU is equal to 1 physical core on the host processor.

Increase vCPUs. (unless you have a core licensing requirement)

vSMP (virtual SMP) can affect virtual machine performance, when adding too many vCPUs to virtual machines that cannot use the vCPUs effectly, e.g. Servers than can use vSMP correctly :- SQL Server, Exchange Server.

This is true, many VMware Administrators, think adding lots of processors, will increase performance - wrong! (and because they can, they just go silly!). Sometimes there is confusion between cores and processors. But what we are adding is additional processors in the virtual machine.

So 4 vCPU, to the VM is a 4 Way SMP (Quad Processor Server), if you have Enterprise Plus license you can add 8, (and only if you have the correct OS License will the OS recognise them all).

If applications, can take advantage e.g. Exchange, SQL, adding additional processors, can/may increase performance.

So usual rule of thumb is try 1 vCPU, then try 2 vCPU, knock back to 1 vCPU if performance is affected. and only use vSMP if the VM can take advantage.

Example, VM with 4 vCPUs allocated!

My simple laymans explaination of the "scheduler!"

As you have assigned 4 vCPUs, to this VM, the VMware scheulder, has to wait until 4 cores are free and available, to do this, it has to pause the first cores, until the 4th is available, during this timeframe, the paused cores are not available for processes, this is my simplistic view, but bottom line is adding more vCPUs to a VM, may not give you the performance benefits you think, unless the VM, it's applications are optimised for additional vCPUs.

See here

see here

also there is a document here about the CPU scheduler
SeanConnect With a Mentor System EngineerCommented:
it is simply a way to distribute resources. i would increase the number of cores before number of vcpu and i never use more vcpu than i have physical cpus. so with your server i would only assign one vcpu and 2 cores or more as needed.
Nick RhodeConnect With a Mentor IT DirectorCommented:
Kind of explains it on a performance level but basically they are the same.

I think it was VMwares way of being nice to Microsoft.  For instance lets say Server 2012.  The license states its valid for 2 sockets (physical processors).  In the virtual world you can assign a bunch of vCPU's or aka virtual sockets.  This way you can still meet the standard for the 2 socket but assign cores to cheat.  It honestly works either way regardless and there is nothing better than the other.
bluedanConnect With a Mentor Commented:
Also if the server supports Hyperthreading and its enabled. The logical Processors (vCPUs) will double.

Suppose your physical server has 1 CPU with 16 cores

It is calculated by = 1 x 16 cores = (16 vCPUs x 2 (hyperthreading enabled)) = 32 vCPUs.

On ESXi host Summary, it will display like this:

Processor Sockets:  1
Cores per Sockets:  16
Logical Processors: 32  (vCPUs)
Hyperthreading: Active

Hope this info helps.
AXISHKAuthor Commented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.