What is CPU steal time on a VPS, and can an application fix it?
Steal time represents virtual CPU time unavailable to the guest while the hypervisor schedules other work. It is distinct from CPU used by your own application. Application optimisation can reduce demand, but a guest cannot directly control the physical host’s scheduling or guarantee that host contention disappears.
Before you start
- An authorised SSH session on the Linux server.
Instructions
1. Sample steal during the slowdown
Record the UTC window and per-CPU samples so intermittent contention is visible. A single spike is weaker evidence than repeated samples correlated with latency.
date -u -Is
mpstat -P ALL 1 5Where exposed, the %steal column reports this scheduling delay. Some platforms expose limited or different accounting, so zero is not a universal proof of no host issue.
2. Separate guest demand from scheduling delay
Compare runnable work, application throughput and CPU states. Keep the provider report factual: plan size, time window, workload and measured impact.
vmstat 1 5Inspect st alongside us, sy, id and the runnable queue. Do not attribute all slow requests to steal if storage, memory or application waits also occur.
Check the result
- Evidence shows whether steal coincides with the symptom. Provider investigation or workload placement changes are validated with comparable before-and-after samples.
Troubleshooting
- An application restart lowers steal temporarily
- Reduced demand can change the observation without fixing host scheduling. Repeat under comparable load.
- The machine is dedicated hardware
- Ordinary bare-metal workloads do not have the same guest steal interpretation; confirm whether a hypervisor or guest layer is involved.
Official references
Use the documentation for your installed version when a flag, service name or platform feature differs.
