T2 instances are Burstable Performance Instances that provide a baseline level of CPU performance with the ability to burst above the baseline. The baseline performance and ability to burst are governed by CPU Credits. Each T2 instance receives CPU Credits continuously at a set rate depending on the instance size. T2 instances accrue CPU Credits when they are idle, and use CPU credits when they are active. T2 instances are a good choice for workloads that don’t use the full CPU often or consistently, but occasionally need to burst (e.g. web servers, developer environments and small databases).
Sometimes EC2 CloudWatch monitoring shows 100% CPU usage but when you ssh to your instance and try to see it with ‘top’ you can’t understand what is happening. Probably, Amazon is “borrowing” some of your CPU cycles to give to someone else who needs it – this is standard practice for a virtualised environment where physical server resources like RAM usage and CPU cycles are often hugely over-committed.
To check for CPU steal, run top and take a look for the %st value. If this value is anything other than zero, it means your VM’s CPU cycles are being “borrowed”.