0
点赞
收藏
分享

微信扫一扫

戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题

戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题_死锁

    近日看到有篇文章说《CPU使用率度量指标是扯淡!》的文章。做为性能做作业人员,顿有是不是以往的人生都过错了的感觉。翻了一下文章,看到原作者是Brendan Gregg。原文是《CPU Utilization is Wrong:http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html》

    这篇文章是5月9日发的post。看完了原文之后,感觉这个翻译者真是不折不扣的标题党,这翻译水平感觉和余秋雨大师的瞒天过海的能力有一拼。


    原作者只是想说明”CPU使用率“这个词有误解,并且原文的标题《CPU Utilization is Wrong》已经非常标题党了。

    可是这个标题翻译的,好像CPU使用率是bullshit的感觉了。想夺人眼球是没问题的,但是这样明显瞎扯的翻译,我也真是见识了。

    

    先说下我对原文的感觉,作者是说CPU使用率从字面上理解应该是CPU在忙,而其实CPU有好几个计数器,里面有几个是说CPU是在等待,而不是真的在忙,所以说在这种状态下说CPU使用率高是CPU的瓶颈是不合理的。比如说wa%,这就是一个明显等待IO的计数器,所以没必要把这个值当成CPU瓶颈来理解。再加上现在CPU的速度比内存、存储都要快很多了,所以CPU有些时候虽说使用率高,但其实是在空转等其他资源。如果再加一个CPU等待其他资源的PMC可能对Brendan来说更容易接受。

    后来Brendan在update中有一句是说(这个update我看没有被翻译成中文):

 I think many people interpret high %CPU to mean that the processing unit is the bottleneck, which is wrong (as I said earlier). At that point you don't yet know, and it is often something external. Is the metric technically correct? If the CPU stall cycles can't be used by anything else, aren't they are therefore "utilized waiting" (which sounds like an oxymoron)? In some cases, yes, you could say that %CPU as an OS-level metric is technically correct, but deeply misleading. 

    这里说的很清楚,因为Brenda觉得有很多人把高CPU使用率说成是CPU的瓶颈,所以觉得这个CPU utilization的说法有误导性。同时,这个update中也说了,从技术角度上说,如果CPU因为被其他资源消耗了并且不能被其他程序使用,不就是CPU在等待上的使用率嘛,并且原文用了oxymoron(矛盾修饰法的意思)这个词(老外就是矫情!)。所以从技术上说,CPU使用率即使是被其他资源消耗了,照样是不可被其他程序使用的状态,也可以被称为CPU使用率。只是Brenda认为有误导性而已。(说得我都觉得自己矫情了!)


    但是通篇文章都没有说CPU的PMC有误导性。请注意这一点。

    其实做有能力做性能分析的人都知道,CPU使用率只是一个统称,它有多个细分的PMC。像在TOP中显示的那样。

戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题_Memory_02

    在TOP中CPU有8个PMCs,分别是us、sy、ni、id、wa、hi、si、st。如果用其他命令也许还可以看到像%guest、%gnice之类的。这里面的每一个PMC都有明确的定义。比如说US如果高的话,应该看用户态空间的CPU消耗,但是这时候会有人说是IO有问题吗?那肯定不会的;如果sy高的话,可以看看CPU热点,这里会有人说是IO有问题吗,也是不会的。这个指向就已经非常明确了。

    但是有一点可能要注意一下的就是CPU的PMC并没有说等待内存的,对吧?为什么没有呢?因为内存不够用的时候,会有其他的PMC来说明呀。比如说vmstat中的si、so。还有就是在内存资源抢占的时候也有可能出现system级别的in、cs(反之则不一定成立哈)。

戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题_死锁_03

    如上图所示,其实CPU、Memory、Disk是个三角恋的关系。这个伤心了,可能是因为另一个伤心了,另一个伤心了可能是因为另另一个伤心了,另另一个伤心了可能是因为这个伤心了。(顿时感觉死锁了,哈哈)。当然真实情况都不会出现这样的伤心死锁,CPU是谁伤心它都会伤心的。

    内存有问题会反应在CPU上,磁盘有问题也会反应在CPU上,谁让它是心脏呢。

    

    所以《CPU使用率度量指标是扯淡!》这个文章标题的翻译纯属bullshit!像这种热衷于语不惊人死不休的翻译法让人觉得非常low的follow。不值得推荐。


举报

相关推荐

0 条评论