major.io words of wisdom from a systems engineer

What is ‘steal time’ in my sysstat output?

After running sar on my new slice from SliceHost*, I noticed a new column called steal. It’s generally very low on my virtual machine, and I’ve never seen it creep over 1-2%.

IBM’s definition of steal time is actually pretty good:

Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.

So, relatively speaking, what does this mean?

A high steal percentage may mean that you may be outgrowing your virtual machine with your hosting company. Other virtual machines may have a larger slice of the CPU’s time and you may need to ask for an upgrade in order to compete. Also, a high steal percentage may mean that your hosting company is overselling virtual machines on your particular server. If you upgrade your virtual machine and your steal percentage doesn’t drop, you may want to seek another provider.

A low steal percentage can mean that your applications are working well with your current virtual machine. Since your VM is not wrestling with other VM’s constantly for CPU time, your VM will be more responsive. This may also suggest that your hosting provider is underselling their servers, which is definitely a good thing.