High CPU ready times and performance degradation in high I/O workloads VMs like SQL server, particularly in environments with CPU overprovisioning. This article explains how to identify when CPU overprovisioning becomes problematic and how to address these issues.
- VMware ESXi 6.x and later
- Virtual machines running high I/O workload like Microsoft SQL Server.
- Environments with multiple high I/O workload VMs.
- Systems showing high CPU ready times (>5%).
- Elevated CPU co-stop events.
- Increased CPU latency.
- Degraded SQL query performance.
- Inconsistent application response times.
While ESXi hosts can support CPU overprovisioning in many scenarios, high I/O workloads like SQL server may experience performance degradation when:
- Multiple resource-intensive VMs compete for CPU resources.
- vCPU allocation significantly exceeds physical CPU capacity.
- Concurrent high-demand workloads create CPU scheduling conflicts.
- CPU ready times consistently exceed recommended thresholds.
mkdir /vmfs/volumes/datastore_name/esxtopcd /vmfs/volumes/datastore_name/esxtopminutes=15path="/vmfs/volumes/datastore_name/esxtop"esxtop -ba -d 15 -n $(expr ${minutes} \* 30) > "${path}"/$(hostname)_$(date -u +"%Y-%m-%dT%H%M%S")_esxtop_batch_all.csvd. Document effectiveness of changes
Notes:
* If needed, open a case with VMware at Broadcom to assist with the 'esxtop' output analysis
The example metrics provided are representative of a system experiencing significant CPU contention. The actual values may vary, but the same analysis methodology applies.