科百科
当前位置: 首页 范文大全

cpu使用率在多少算正常(CPU利用率的正确计算方法)

时间:2023-06-01 作者: 小编 阅读量: 5 栏目名: 范文大全

翻译蒋迪我们平时使用的CPU利用率方法是极具误导性的,并且一年更甚一年。我认为需要人将高CPU利用率视为处理单元的瓶颈的事儿,是错的。在超线程中,怠速周期可以被其他线程使用,所以%CPU的算法也会将其算在内,而实际上并没有利用。结论CPU利用率已成为一个极具误导性的指标:它算进了等待主存的周期,而这类周期在现代的CPU负载中占据不少。比如,它们可以一起显示%CPU和IPC,或者指令周期与怠速周期。

翻译 蒋迪

我们平时使用的CPU利用率方法是极具误导性的,并且一年更甚一年。那么什么是CPU利用率?是你的CPU到底有多忙,是像“% CPU”这样到处在用的指标所显示的那样吗?

在top命令里,你看到90%的CPU利用率是这样:

然而它真正想表达的是这个意思:

Stall(这里译作“怠速”)是说这个处理器没有在跑指令,比如在等待内存I/O的时候。我上图所画的比例(“忙”与“怠速”之间)是我在真实生产环境中遇到的,并且你的CPU也很可能是处于“怠速”状态。

这些对你有什么意义呢?理解CPU怠速多少,会直接影响到你在减少代码或者减少内存I/O的调优工作。

那么真正的CPU利用率怎么算呢?

平时的CPU利用都是非空闲时间,即CPU不运行idle线程(比如Windows里的空闲进程)的时间。你的操作系统那会平时会在上下文切换的时候跟踪它,但是假如一个非idle线程开始运行100毫秒后停止,那内核会认为后面这段时间CPU也在这个非idle线程上。

  • 使得这个%CPU指标错误的理由除了CPU在内存的怠速周期外,还有如下因素:

  • 温度也能使CPU进入怠速;

  • Turboboost(睿频)引起时钟频率变化;

  • SpeedStep引起时钟频率变化;

  • 一分钟内的80%的平均利用率并不能表示100%的突发利用率(类似网络QoS);

  • 自旋锁:CPU在很严肃地瞎忙;

  • Update: CPU利用率真的错了吗?

    自这篇文章发布以后,留言讨论非常激烈,已经有了上百条了。首先谢谢你们对这话题感兴趣并花时间阅读,但我在这里还是要统一回复:我对disk的iowait并不关心(译者注:PC CPU不能直接操作外部存储),并且文中也已经给出了内存操作密集型的对应调优措施。

    然而,CPU利用率到底是从本质上错了还是仅仅是有误导性了?我认为需要人将高CPU利用率视为处理单元的瓶颈的事儿,是错的。那么这个指标的计算方法从技术上讲正确吗?如果CPU在怠速期间不能被其他任何进程使用,那么这不就是所谓的“使用等待”(听起来有点矛盾)。某些情况下,%CPU作为一个操作系统层面的指标是技术正确但是容易误导人的。在超线程中,怠速周期可以被其他线程使用,所以%CPU的算法也会将其算在内,而实际上并没有利用。那样是不对的,这篇文章中我强调的是解释问题并提出对策,并且,这个指标也有技术上的问题。

    结论

    CPU利用率已成为一个极具误导性的指标:它算进了等待主存的周期,而这类周期在现代的CPU负载中占据不少。如果使用额外指标,你就能搞清楚%CPU到底意味着什么,包括每CPU周期执行指令数(IPC)。IPC < 1.0可能意味着你的应用是内存密集型,而IPC > 1.0则可能是指令密集型。我在之前的一篇文章,显示%CPU的性能监控产品也应该显示PMC测量指标,并给予充分解释,这样才不会误导用户。比如,它们可以一起显示%CPU和IPC,或者指令周期与怠速周期。有了这些指标,开发或管理人员才能在应用和操作系统中选择正确的调优方式。

    译者的话

    本文翻译自Brendan Gregg的博客文章《CPU Utilization is Wrong》,原文链接为http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html,就是那本《性能之巅(中译)》的作者,调试工具dtrace的作者,现就职于NetFlix。

    PS:为什么要翻译这个文章呢?因为很多时候总感觉PC的这个CPU利用率的百分比显示没能真实反应我的CPU到底忙不忙,在学校的时候用单片机也是算idle,但到了PC后隐约感觉这么算不对,看了BG的文章后才恍然大悟。另外这篇文章之前已经被翻译过,但作者又有更新,也挺有意思的,我就重新翻了一遍,并加了一些弹幕。

    译者介绍:云技术社区专家 蒋迪

    蒋迪,资深虚拟化基础设施工程师,《KVM私有云架构设计与实践》作者,云技术社区专家,擅长KVM云平台架构解析与虚拟化POC,具有一线开发与交付经验。

    云技术社区介绍:

    云技术社区成立于2014年,国内最大的云技术交流平台,分享在云计算/虚拟化项目实施中的资讯、经验和技术,坚持干货。

    ,
      推荐阅读
    • 长春花扦插方法(长春花如何扦插)

      下面更多详细答案一起来看看吧!长春花扦插方法准备一个泡沫箱,在箱子里装入鱼缸底砂或粗河沙,加水清水淘洗干净,然后倒入稀释好的高锰酸钾溶液。剪取生长健壮的长春花枝条,保证每段长度在5-10cm,把枝条插入底砂中,放在25℃的房间散光养护。大概半个月长春花的枝条就能生根,接着移栽定植到小花盆里即可。

    • 幸福树怎么扦插(幸福树怎么扦插才能活)

      扦插幸福树时,要在每年的三、四月份,将植株生长一到两年的枝条剪下15-20厘米,并将底部的叶子剪掉,然后将幸福树的枝条插入高锰酸钾溶液中消毒杀菌后,再将其插入疏松、肥沃且排水性好的土壤中即可。

    • 悬疑推理名场面(从三个角度的悬念设置特色)

      为了说服法庭为什么密室杀人案另有其人,男主不得不说出男主因与女主劳拉幽会,回来的路上撞死了青年丹尼尔。男主在劳拉的逼迫下不得已把死者与车子都沉入了湖底。因此,嫌疑人应该是这个“知情人”。律师通过现场事实与专业的分析,揭示出男主在撒谎。若按照男主的交代,无法说服法庭。至此,脱罪有望了。出事后被恐惧、内疚、焦虑所折磨,最后良心发现,选择将真相告诉丹尼尔父母、赔偿他们,并想说服男主自首。

    • 散粉使用的步骤(散粉的正确使用方法)

      接下来我们就一起去了解一下吧!散粉使用的步骤涂抹粉底后应停留几分钟让粉底牢固,然后再上散粉。用粉扑或化妆扫蘸上散粉后,略摇去部分,由上而下往脸部涂粉,防止粉末堆积在汗毛上,造成面部不平。再用化妆扫扫去多余碎粉。在眼睛正下方涂抹一层散粉可以防止眼影粉不小心掉落。如果使用丝绒粉扑,要轻轻在脸上按动或者滚动,把散粉压在脸上。重复这个动作,让粉持续的时间比较长。散粉最适合用于油性皮肤。

    • 蝎子怎么存放(蝎子如何存放)

      接下来我们就一起去研究一下吧!蝎子怎么存放一次性将蝎子炸熟放入袋中,放入保险储存,随时可食用。将活蝎子放在鱼缸即可,不喂的情况下至少一个星期以上,或喂面包虫。将活蝎子封好口,放入冰箱储存,或找个闲置的饭盒,把蝎子倒入在放进冰箱速冻,这样冰出来的蝎子一个是一个,等需要食用时取出洗净用香油炸就可。

    • 古言经典小说推荐排行(5本高质量长篇古言小说)

      古言经典小说推荐排行大家好,我是毛毛虫,有书友留言想看长篇古言,小编整理了一波,都是高人气高质量佳作,一起来看看。喜欢女主敢作敢当,敢爱敢恨,常常扮猪吃虎的性格。女主卦术高超,男主聪慧绝世。女主有能力,有决断,温温婉婉,平和却不乏手段。想看其他类型的书单推荐,可以点击上方头像,关注爱看小说的毛毛虫,十多年书龄,每天推荐好看的小说,让你从此告别书荒!

    • 冰墩墩雪容融寓意(冰墩墩雪容融寓意是什么)

      接下来我们就一起去了解一下吧!冰墩墩雪容融寓意冰墩墩的寓意:吉祥物冰墩墩名字中的“冰”,象征纯洁、坚强,是冬奥会的特点;而墩墩则意喻敦厚、健康、活泼、可爱。容,寓意包容、宽容、交流互鉴;融,意喻融合、温暖,相知相融。

    • 坚果都有哪些品种(100种坚果名字大全)

      与扁桃、腰果、榛子并称为世界著名的“四大干果”。杏仁分为甜杏仁和苦杏仁两种。

    • 便能组什么词(便可以组成哪些词语)

      下面希望有你要的答案,我们一起来看看吧!便能组什么词便利:使用或行动起来不感觉困难;容易达到目的;附近就有商场,买东西很便利。宋苏轼《赵清献公神道碑》:“公乞以便宜行事。”