While the physical server (hypervisor) briefly gives a virtual machine’s CPU time to another VM (CPU steal), the game server stalls.
Why Other VMs on the same host use a lot of CPU → Effect The game server’s VM loses its turn on the CPU for a few ms to tens of ms at a time → On screen Unexplained tick-time spikes: stutter, freeze
Primary owner Infra team (Server infrastructure) · Also External (External)
Infra team action items
Monitor steal (st in top and vmstat), use dedicated cores or hosts, avoid burstable instances that slow down when CPU credits run out, stop and start instances with persistently high steal to move them to another host.
External action items
Report hosts with persistently high steal to the cloud provider.
On the graph
Random spikes · %steal, server tick time
Where to look
%steal from mpstat -P ALL 1 on the same time axis as server tick time
Confirmed if
%steal spikes whenever the tick spikes, and drops after a stop and start moves the instance to another host
Ruled out if
%steal near 0 while ticks still spike: a cause inside the game server (“Server GC stop-the-world pause,” “Lock contention”). In a container: “Container CPU throttling (CFS quota)”