Over provisioning is always leads to performance issues in vSphere. it doesn't matter whether it comes under CPU, memory or storage. In this article, we understand little bit best practice and understanding on CPU over commit.
When we provision CPU resources, which is the number of vCPUs allocated to run the VMs, and if its number is greater than the number of physical cores on a host, it is called CPU overcommitment. over commit can be accepted in few ratios which recommended by VMware as well. like, 1:1, 1:2 and 1:3. let's understand more on these values.
Anything comes under 1:1 to 3:1 is no problem. 3:1 to 5:1 may begin to cause performance degradation. so, when you are planning your system configuration, just think and define these parameters as per business and infra needs. whatever you are defining in the system, it has to be closely monitored in the system.
Calculating available Host CPU Resources
For example, if you have 2 processors with 6 cores each:
(2 Processor Sockets) X (6 Cores/Processor) = 12 Physical Processors (pCPU)
In case of hyperthreading, it will be calculated as per below.
(12 pCPU) X (2 threads/physical processor) = 24 Virtual Processors (vCPU)
Please understand that hyperthreading does not actually double up the available pCPU. Hyperthreading providing a second execution thread to a processor core. When one thread is idle or waiting, the other thread can execute instructions, and this will slightly bust up the system performance. if skew value is too high (typically over a few milliseconds) then it indicates that VM is unable to access all its processors synchronously.
Now, Question. How you CPU utilization can be check on host level? well, it's simply you can check through ready time. The value of ready time is an indicator of how long a VM is denied access to the pCPU resources that it wanted to use. This makes it a good indicator of performance.
When multiple processes try to use the same physical CPU, that CPU might not be immediately available, and a process must wait before the ESXi host can allocate a CPU to it. short spike in CPU used or CPU ready indicates the best usage of the host resources. However, if both the values are constantly going high which means the hosts are probably overloaded and performance is likely poor.
follow the Esxtop metrics as below
This example uses esxtop to detect CPU overcommitment. Looking at the pCPU line near the top of the screen, you can determine that this host's two CPUs are 100 percent utilized. Four active VMs are shown, Res-Hungry-1 to Res-Hungry-4. These VMs are active because they have relatively high values in the %USED column. The values in the %USED column alone do not necessarily indicate that the CPUs are overcommitted. In the %RDY column, you see that the three active VMs have relatively high values. High %RDY values plus high %USED values are a sure indicator that your CPU resources are overcommitted.
As a general guideline, attempt to keep the CPU Ready metric at 5 percent or below. For most types of platforms, this is considered a good practice.
Hope this article will help you in your daily operational activities and troubleshooting. for any further questions or queries, you may write an email or drop a message on chat box, I shall be happy to help you to answer your questions.