High virtual machine CPU utilization in vSphere performance metrics compared to guest operating system.
search cancel

High virtual machine CPU utilization in vSphere performance metrics compared to guest operating system.

book

Article ID: 449704

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

When monitoring virtual machine performance, a significant discrepancy may be observed between the hypervisor metrics and the internal guest operating system (OS) metrics. 

  • Hypervisor performance monitoring charts for the virtual machine indicate a sustained CPU usage ranging between 82.08% and 87.06%. A concurrent review of the Guest OS Task Manager confirms the actual CPU utilization within the operating system is running at 1%.
  • VM CPU utilization performance chart via vSphere web client to confirm the issue.

  • Guest OS CPU utilization Performance chart

Environment

VMware vSphere ESXi 8.x

VMware vCenter Server 8.x

 

Cause

This discrepancy occurs when the virtual machine's advanced configuration parameter monitor_control.halt_desched is manually set to FALSE as part of a performance tuning implementation.

Setting this parameter to "FALSE" overrides the default CPU scheduling behavior. It forces the vCPU to consume all of its allocated pCPU time. When the vCPU in the VM idles, the VM Monitor spins on the CPU without yielding the CPU to the VMkernel scheduler until the vCPU needs to run in the VM again. Because the VM Monitor continuously spins on the physical CPU during idle periods instead of yielding, the hypervisor registers this activity as constant, high CPU utilization.

Resolution

To resolve the reporting discrepancy and restore the default hypervisor scheduling behavior, revert or remove the advanced configuration parameter by following these steps:

  1. Power off the affected virtual machine.

  2. Right-click the virtual machine and select Edit Settings.

  3. Navigate to VM Options > Advanced and click Edit Configuration.

  4. Locate the row for the monitor_control.halt_desched parameter.

  5. Change the value to TRUE, or remove the parameter entirely to return to default behavior.

  6. Click OK to save the changes and power on the virtual machine.

  7. Monitor the performance charts to confirm the hypervisor CPU usage now aligns with the Guest OS processing load.

Additional Information

Removing or altering the parameter to TRUE re-enables the default hypervisor behavior, allowing the Virtual Machine Monitor to yield physical CPU cycles back to the VMkernel scheduler when the Guest OS issues a halt/idle instruction. This resolves the continuous spinning state and normalizes metrics. Ensure to consult official performance tuning documentation before modifying advanced VM parameters.

For information on CPU usage, please refer the Broadcom TechDoc : CPU Usage