Differences between adding virtual CPU cores and virtua CPUs

I have a virtual Windows 2012 server running on an ESXi 5.5 server.  It was initially created with 1 vCPU with 1 core. Its primary function is to run backups using Backup Exec 15.  Now I want to try using deduplication with my backups.  The BE15 documentation states that for up to 5TB of data (which is a little more than what I am backing up during a full backup), the BE server should have 4 cores and 8GB of memory. I'm a little hazy on the distinction in VMs between cores and vCPUs in terms of performance and/or affect on other VMs on the same host.  Should I add 3 cores to the existing vCPU, or should I add 3 additional vCPUs?  The host machine has 2 processors with 4 cores per processor.

Except for storage requirements, this is a small network (about 50-60 users).  There are 2 hosts and a total of 8 virtual machines. Besides the backup server, there are 3 other VMs on this host, but none of them have high-intensity I/O requirements. One is a DC, one is a web server and one is a file server that stores audio, video and graphics files that are mostly used as a digital archive for the contents of the building (a museum) and also for on-line research.
LVL 39
Hypercat (Deb)Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
In a Virtual Machine world, we add vCPUs.

Adding Cores or Sockets, is the same as far as performance, only add Cores if you have a Cores restricted license.

If you only have 1 vCPU currently, I would try 2 followed by 4, and see if performance gets better. If you over allocate, it will not use it, and the hypervisor will re-allocate it, but add too many, and this could cause performance issues!

it depends if the application is multi threaded and can use all the vCPUs.

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



Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Mal OsborneAlpha GeekCommented:
The difference is in how Windows will perceive the processors and apply licensing restrictions. For example, Server 2012 Essentials allows 2 physical processors maximum. If you load it onto a machine with more than that, the extra ones will show in device manager but not be used. Cores do not matter, the 2 physical CPUs can be 2 or 12 core, the limit is only on CPUs.

When virtualising, the host presents a number of virtual physical CPUs, with a number of cores. For server 2012 Essentials, you could either configure 2 CPUS, each with 6 cores, or 6 CPUS, each with 2 cores. In this instance, the first selection will work fine, but the second will only use the first 2 cores.

I generally set the CPUs and cores on the host machine to match the actual core count for VMs, Ie, if I have a host with 2, 6core hyperthreaded cores, I would configure each CPU for the VM to have 12 cores. This allows enough CPU cores to be allocated while remaining complaint with licensing.

For your scenario, I would advise testing, to determine the optimal number of CPU cores. I would run a backup of typical data with  1, 2 and 4, and see what the difference in speed is. I suspect 4 might be overkill.
Hypercat (Deb)Author Commented:
Thanks to you both.  Very clear explanations and even a little extra education inbetween.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.