How Is My CPU Actually Being Spent?

These panels break down CPU time by where it was spent, so you can attribute load to user code, kernel work, I/O wait, and other states.

CPU Utilization

Aggregate CPU busy ratio of the guest — 1 − idle. The first thing to look at when CPU climbs.

CPU User

Time the guest spent running user-space code. The first line of attribution for application owners — if this is high, profile your application.

CPU System

Time the guest kernel spent on syscalls and kernel-side work on behalf of user processes. High system time with low user time usually points at syscall storms, network softirq pressure, or contended kernel locks.

CPU IOWait

Time the CPU was idle while there was at least one outstanding I/O request. Read together with the disk panels and Hypervisor I/O Wait Time to localize whether the bottleneck is in the guest or in the storage backend.

CPU SoftIRQ

Time spent servicing software interrupts — dominated by network RX/TX processing on busy VMs. Sudden growth here is a strong hint that the instance is approaching a packet-per-second limit.

CPU Idle

The complement of CPU Utilization. Surfaced explicitly so you can spot "idle but unhappy" patterns: high idle combined with high IOWait or high CPU Other.

CPU Other

Catch-all bucket for the less common CPU states. Important: this is also where guest-observed steal time lives. If CPU Other climbs without CPU User or CPU System climbing, suspect host over-provisioning and cross-check with Hypervisor CPU Queue Time (Q1).

Hypervisor CPU Time / User / System

The total CPU the hypervisor billed to this domain — measured on the host side, not from inside the guest. Broken down into total time, user-space time, and kernel time. Useful when reconciling guest-side CPU spend with hypervisor-side capacity planning, and as a fallback when in-guest data is unavailable.

Hypervisor I/O Wait Time

Time the vCPU was blocked on I/O, measured on the host side. Read together with the disk latency panels (Q5) to localize I/O stalls.

API Reference

All instance metrics use DescribeInstanceMonitorData with the metricType values below.

Console Panel
metricType

CPU Utilization

CPU_UTILIZATION

CPU User

PROC_CPU_USER

CPU System

PROC_CPU_SYSTEM

CPU IOWait

PROC_CPU_IOWAIT

CPU SoftIRQ

PROC_CPU_SOFTIRQ

CPU Idle

PROC_CPU_IDLE

CPU Other

PROC_CPU_OTHER

Hypervisor CPU Time

HYPERVISOR_CPU_TIME

Hypervisor CPU User

HYPERVISOR_CPU_USER

Hypervisor CPU System

HYPERVISOR_CPU_SYSTEM

Hypervisor I/O Wait Time

HYPERVISOR_IO_WAIT_TIME

Last updated