VMware Cloud Community
rgardnerS1
Contributor
Contributor

Why does everybody say a vm with more the 8 vcpu's is unnecessary?

We have virtualized our Performance testing environment. Part of this was virtualizing two x3650(2x6core,64gb) oracle db servers in a RAC setup. These VM's while sitting on top of essentially the same scale of hardware are limited to 8 vcpu's(2x4core). Every time I look into this I find people saying "I always get very skeptical when I hear people looking for vm's with more then X vcpu's". Why is that? If it's running only 8 vcpu's but the backend has 12, or 24( with hyperthreading enabled) cores available should it run similiarly, or are my options limited to creating more/smaller oracle rac instances or buying enterprise plus?

0 Kudos
8 Replies
weinstein5
Immortal
Immortal

Two reasions

  1. In the early days of ESX 2 the scheduling of vCPU on the physical logical CPUs was not as efficient as it is today so the recommendation was to go with a single vCPU unless absolutely necessary
  2. In avirtual environment you are sharing resources so you always want try to right size your VM providing enough CPU and memory to delver correct level of performance. This will leave resources for other VMs

It is my experience most virtual machines deliver acceptable performance iwth a single vCPU remembering that in the virtual environment it is very easy to add addiitonal vCPUs

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
mittim12
Immortal
Immortal

I also remember sitting through a SQL and SharePoint presentation at VMworld where it was recommened to scale out vs scale up for the best performance.   If I remember correctly the 2 vCPU and 4 vCPU were almost identical performance when compared to physical but the more vCPUs added the more performance dropped.   

0 Kudos
chriswahl
Virtuoso
Virtuoso

I remember that presentation. I recall a virtualized Exchange environment being able to handle double the load after virtualizing it (on the same hardware) and splitting up the mailbox servers into smaller servers.

Back to the original post: Typically the "more than X vCPU" skeptacism is because people tend to throw more vCPUs at a VM to "Fix problems" without doing due dilligence to ensure that there is a real CPU bottleneck, or that the applications can actually use multiple threads, etc. If you have a valid reason with an application that can consume that many cores, go for it.

Also note: If you want to go above 8 vCPUs per VM, you will most definitely need Enterprise Plus. Otherwise you are limited to 8 vCPUs per VM.

VCDX #104 (DCV, NV) ஃ WahlNetwork.com ஃ @ChrisWahl ஃ Author, Networking for VMware Administrators
0 Kudos
Josh26
Virtuoso
Virtuoso

The problem is that overdoing CPUs is such a common problem.

I had an environment I walked into with two quad core CPUs in each host.

Each host had eight VMs, and each had between four and eight vCPUs. Several of these VMs were performing silly things like Windows file shares. When someone created an Access database, the feeling was "we should add CPUs to the file server".

That environment worked like a pig due to the scheduling contention. The "consultant" advised upgrading to Enterprise Plus so they could throw more vCPUs at each host. It's also a typical example of the sort of environment people like to build.

The more cluey people on this forum desperately try to get the point across that this is NOT how you build an environment.

It doesn't mean large numbers of cores don't have their place. Just do your due diligence about where they make sense.

0 Kudos
raj196
Enthusiast
Enthusiast

Hi  Because of limitation we can assign only limited virtual core cpu to vmware . A virtual CPU is not a one to one assignment - it represents time.  It is a representation of time on the physical CPU resource stack. A physical CPU core is controlled by the hypervisor and this is divided up into  virtual CPU cores.  It is these virtual CPU cores that are presented to the virtual  machines (and used by the virtual machines).

If at first you don't succeed; call it version 1.0"
0 Kudos
rgardnerS1
Contributor
Contributor

So if we actually have a valid application that can and does use more then 8 physical cores, but I am limited to 8 vcpu's that has full access to 24 logical cores will I only get 1/3rd the performance, or can the 8 vcpus switch between all the cores and actually perform better then a physical 8 core box?

0 Kudos
weinstein5
Immortal
Immortal

Not so much a third of the performance butyes the VM will only use 8 cores at a time switching between the other 16 cores as incuring approriate cycles are delivers to the VM - remeber just because an app can use 8 cous does not mean it is using the 8 cpus constantly - as I said most vms/apps will perform bas well is not better with fewer vcpus and if it does not add additional vcpus -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
shishir08
Hot Shot
Hot Shot

It is always advisable to configure the VMs with few virtual CPU’s as needed by application to handle its load. Unnecessarily one should not overprovision the vCPU’s to the VMs because unused vCPU’s does impose resource requirements on the ESX server .In some GOS unused vCPU take timer interrupts  which consumes small amount of additional CPU.The scheduler job becomes less complex with less vCPU per VM. Adding vCPUs in a VM increases scheduling complexity but with limited number of vCPUs scheduling will still be manageable.Adding a significant number of vCPU’s (4,8) in the VM requires to maintain fairness which becomes extremely complex. The result is high %RDY time for VMs on the host.

0 Kudos