Performance & reliability

What is CPU steal time and why does it matter?

Short answer

Steal time is the percentage of time your virtual CPU was ready to run but the hypervisor gave the physical core to someone else. It appears as the "st" column in top. Anything consistently above 2–3% means you are competing for the core, and it is the usual cause of unexplained latency spikes on a shared-vCPU instance.

Steal time is invisible to your application: the code runs at full speed when it runs, it just does not always get to run. That is why it shows up as tail latency rather than as slow throughput, and why average response times can look fine while the 99th percentile is terrible.

The fix is dedicated vCPU, where a physical thread is reserved for you and no other tenant is scheduled against it. Two dedicated cores routinely outperform four shared ones for anything latency-sensitive.

See also: Hypervisor · vCPU