This topic is always a perpetual debate to define the proper ratio of physical CPU to virtual CPU in any virtualized environment. Neither any vendor has the thumb rule number to derive this ratio. Numerous times we have asked this candid question to ourselves or to our fellow architects, from a commercial point of view that - why the workload optimization trend (i.e. No of workload running on a host which is ultimately talking about over commitment) is not increasing even though the processing efficiency of underlying hardware has tremendously enhanced, followed by cost of course. It could be a reason, the compute resource consumption mechanism or technique in new generation’s operating systems and cloud aware application has been developed to cater the extraordinary business demands and to offer multi-tenant based solutions. So it might be a parallel enhancement for the processing efficiency of underlying hardware as well as the OS and APP. Example some kernels, program the virtual system timer to request clock interrupts at 100Hz (100 interrupts per second) and some kernel use 250Hz. However the best practices are always in place based on the market research and majority of acceptance, to define the ration for your need.
We have witnessed in most environments VMware ESXi allows substantial levels of CPU over commitment i.e. running more vCPUs on a host than the total number of physical processor cores in that host, without impacting virtual machine performance. We had always been of the mind-set that when provisioning new VMs it is best to start with less vCPUs and add more as they are required, unless we specifically know that this application will be craving more resources. Many has pointed out that the single vCPU mind-set is obsolete and we can always debate on this because the older operating systems being uni-processor (i.e. single core) based but the trend has been significantly changed in new operating systems and applications.
- The exact amount of CPU over commitment a VMware host can accommodate will completely depend on the VMs and the applications they are running. A general guide for performance of [allocated vCPUs] vs [total vCPU] from our Best Practices recommendations are as listed below. You may differ on this statement because you will know your applications and environment needs and requirements far more than any best practices will dictate. But please don’t over provision just to leverage over provisioning feature. The below numbers are the figures based only on our understanding.