My M4.large instance somehow reported slight stolen CPU. However, if I didn't remember wrong. It should merely occurs on T2 or M3 series instances.
top - 11:07:53 up 24 min, 2 users, load average: 1.00, 1.00, 0.80 Tasks: 89 total, 2 running, 87 sleeping, 0 stopped, 0 zombie Cpu0 : 29.0%us, 62.6%sy, 0.0%ni, 8.0%id, 0.1%wa, 0.0%hi, 0.0%si, 0.3%st Cpu1 : 0.1%us, 0.0%sy, 0.0%ni, 99.4%id, 0.1%wa, 0.0%hi, 0.0%si, 0.4%st $ lscpu -p # The following is the parsable format, which can be fed to other # programs. Each different item in every column has an unique ID # starting from zero. # CPU,Core,Socket,Node,,L1d,L1i,L2,L3 0,0,0,0,,0,0,0,0 1,0,0,0,,0,0,0,0
I'm using taskset 1 dd if=/dev/zero of=/dev/null to make the CPU a spike on vCPU 0.
According to AWS doc, the underlying hardware is using: 2.3 GHz Intel Xeon® E5-2686 v4 (Broadwell) processors or 2.4 GHz Intel Xeon® E5-2676 v3 (Haswell) processors
which both have 2 logical cores per physical.
In addition to M3.large, I noticed that M4.xlarge also has this problem, in which type includes 2 physical cores and therefore 4 vCPU. I tested it on M4.xlarge with taskset command as well. when there were spike on the vCPU either on the same core or the different one caused the stolen CPU.
For instance, vCPU0 and vCPU2 coexist in Core0. When I produce the spike on them, I can magically see stolen CPU on vCPU1.
It was quite wired. Please help figure out the reason. Thanks.