What does %st mean in top?

Here is an example from my top:

Cpu(s):  6.0%us,  3.0%sy,  0.0%ni, 78.7%id,  0.0%wa,  0.0%hi,  0.3%si, 12.0%st

I am trying to figure out the significance of the %st field. I read that it means steal cpu and it represents time spent by the hypervisor, but I want to know what that actually means to me.

Does it mean I may be on a busy physical server and someone else is using too much CPU on the server and they are taking from my VM?

If I am using EBS could it be related to handling EBS I/O at the hypervisor level?

Is it related to things running on my VM or is it completely unaffected by me?


Solution 1:

The Steal percentage (documented in the mpstat man-page) is indeed the hypervisor telling your VM that it can't have CPU resources the VM would otherwise use. This percentage is regulated in part by Amazon's CPU limiting, and VM load on that specific host. I/O load is monitored through the %io stat.

You will see this most often on their t class of instances that use a CPU credit model for regulating performance. If you're seeing high percentages, chances are good you're running out of CPU credits.

Solution 2:

man sar's

Show the percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor.

Solution 3:

Steal load accounts for time when your VM wanted to run something, but the hypervisor chose to run something else instead.

Solution 4:

Steal Time or stolen time, mean the amount of time that your host in VM is ready to run (some instruction), but could not do this because other's VM competing for the CPU. When the value get bigger, this is indicate that your vm getting slow or stall. So keep this value as minimum as possible.