“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使用率依然是个简单好用的性能展示工具。

相关推荐