CPU使用率(CPU utilization)直观显示了运行程序占用的CPU资源,使用率越高,说明你的机器在这个时间上运行了很多程序,一般情况下,CPU占了100%的话我们的电脑就会明显慢下来。但你知道吗?我们用来衡量CPU使用率的这一指标具有极大的误导性,而且一年比一年来得误人子弟。
Brendan Gregg是Netflix的高级性能架构师,他在那里做大规模计算机性能设计、分析和调优。他是《Systems Performance》等技术书的作者,曾获得过2013年USENIX LISA大奖。
5月9日,他在个人博客发表了一篇《CPU Utilization is Wrong(CPU使用率是错误的)》博文,指出CPU使用率已成为一个极具误导性的度量指标。
你可能认为90%的CPU使用率意味着:

而实际上它可能意味着:

停滞(stalled)意味着处理器在处理指令方面处于停滞状态,通常是由于处理器在等待内存输入/输出,这在现实生活生产中时刻存在,但大多数人浑然不知。
Brendan Gregg表示,现如今,CPU的速度已变得比主内存快得多,如果你看到数值很高的%CPU,可能认为处理器是瓶颈,而实际上那些DRAM模组才是瓶颈。
了解你的多少CPU处于停滞状态可以指导减少代码或减少内存输入/输出之间的性能调优工作。谁要是在关注CPU性能,尤其是在根据CPU自动扩展资源的云,如果知道%CPU中停滞的部分,那将大有益处。
当然,Brendan Gregg是从开发人员角度阐述的,对于普通消费者,CPU使用率依然是个简单好用的性能展示工具。