Ensuring available CPU cycles to virtual machine workloads is critical, requiring that you keep a close watch on CPU performance as you scale your IT infrastructure. The VMware CPU Ready Time report shows the percentage of time that the virtual machine was ready to use CPU resources, but could not get scheduled to run on the physical CPU.
The higher the ready time, the slower the VM is performing. High ready time not only slows down virtual machines, but it also slows down any Oracle on VMware, SQL Server on VMware, or other database applications running on them.
Small levels of Ready Time are considered normal, and most often occur on SMP virtual machines. This is because VMkernel "simultaneously schedules" CPU cycles for multi-vCPU VMs. This happens regardless of the task the VM is trying to perform. High VMware CPU Ready Time values will degrade performance of all Oracle VMware, SQL Server VMware, and other database applications running on the affected VMs.
This makes it necessary to assign an appropriate number of vCPUs to other virtual machines in order to handle the load that it will be processing on a constant basis.
If the exact workload is not known, VMware best practices advise starting with fewer virtual CPUs and, if necessary, increasing the number later. You should only allocate multiple vCPUs to a virtual machine if the expected workload can take advantage of all the vCPUs. Over-provisioning vAPUCs may result in increased CPU latency and memory consumption. Don't worry about not having enough CPU resources; a single vCPU VM could be enough to support high transaction throughput of most Oracle VM and SQL Server applications.
If there is a high VMware CPU Ready Time, check Host CPU Usage.
- If Host CPU Usage is Normal
This implies that CPU resources have been under-allocated.
- Check to see if the VM configuration has a CPU Limit. Think about raising or removing the limit. You can use the ESXTOP VMware utility to check the %MLMTD metric which shows how much ready time was due to violating the CPU Limit setting (note that %MLMTD is a subset of ready time).
- User resource controls to give higher priority (i.e. more shares) to this virtual machine, which in turn will allocate more CPU resources to it.
- If Host CPU Usage is High
This implies that CPU resources were over-committed by a host. Login to the VMware guest to check for runaway processes that are over-utilizing VMware host CPU resources. You will also want to look for virtual machines there the HAL is not set to use more than on vCPU. Operating systems that don't have the ability to recognize more than one processor will not provide additional performance gains by adding more vCPUs.
Confio IgniteVM helps identify the impact of CPU ready time for sites running Oracle on VMware, SQL Server on VMware, and other virtual databases. IgniteVM helps DBAs maintain performance and availability on virtual servers. IgniteVM is the only virtualization-aware database monitoring solution.
Learn more about IgniteVM solutions for: