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

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年,国内最大的云技术交流平台,分享在云计算/虚拟化项目实施中的资讯、经验和技术,坚持干货。

    ,
      推荐阅读
    • dota2 快速入门(新手如何玩转DOTA2)

      还有先要熟悉一下dota2商店和购买物品的变化。为了到达对方的远古遗迹,一方英雄必须战胜对方的部队、防御建筑和英雄。玩家在匹配成功后,拒绝进入比赛,会有2分钟的禁止匹配惩罚。在此情况下比赛结束后没有战斗点数,也不会掉落饰品。断线重连有5分钟的时间限制,如果5分钟内没有重连成功,系统判定玩家逃跑。dota里大哥位比较容易被针对,而且容易背锅。残血逃生,快速支援,快速补给。

    • 华为手机打不通电话是什么原因(华为手机打不了电话是什么原因)

      华为手机打不通电话原因可能是:1、手机信号。可能因为当时所处环境信号差,可稍作等待,待信号正常后再尝试;2、和360安全卫士冲突。可将360卸载,并将手机恢复出场设置;3、手机“免打扰”模式开启。关闭该模式;4、SIM卡。将手机带到华为售后营业厅检测相关问题。

    • 明日蔬菜搭配表(明日谷雨记得多吃2绿2白)

      谷雨,是春天最后一个节气。各地气温开始回升,降雨增多,虽然大大有利于谷类农作物的生长,但湿气渐重,闷热潮湿的环境会对人体产生一些不适的影响,我们要保持心情舒畅,饮食以养肝护肝、健脾祛湿为主。在这里我建议大家,谷雨时节,多吃“2绿2白”,少吃2味,顺应时节调整饮食,为应对入夏的闷热潮湿做好准备。

    • 去俄罗斯海参崴注意什么(去俄罗斯海参崴注意事项)

      去俄罗斯海参崴注意什么有效护照及护照主页复印件及身份证复印件一份。俄罗斯旅行社签发的确认迎接外国旅游者函原件及其复印件。根据世界通行的海关规定,展览品明确属于商业用品,一般应办理ATA单证册手续。以自用物品形式携带展品入境在俄属违法行为;

    • 拾金不昧的意思是什么(词语拾金不昧什么意思)

      下面内容希望能帮助到你,我们来一起看看吧!拾金不昧的意思是什么拾金不昧,汉语成语,拼音是shíjīnbùmèi,意思是拾到东西并不隐瞒下来据为己有,指良好的人的道德和社会风尚。

    • 标致408是三缸的吗(东风标致408是不是三缸)

      标致408的1.2t发动机是三缸的,但是标致408并不是全系车型都是三缸的。标致408是标致旗下的一款紧凑型轿车,这款车的轴距为2730毫米,长宽高分别是4750毫米,1820毫米,1488毫米。标致408的1.2升涡轮增压三缸发动机拥有136马力和230牛米的最大扭矩,这款发动机的最大扭矩转速为1750到3500转每分钟,最大功率转速为5500转每分钟。这款发动机搭载了缸内直喷技术,并且使用了铝合金缸盖缸体。

    • 屈原微言端午节(今又端午再忆屈原)

      相传,吃粽子和赛龙舟等活动是为了纪念我国伟大的爱国主义诗人屈原。端午节是我国的传统节日,因爱国诗人屈原而有名,因承载民俗文化而厚重。楚武王熊通之子屈瑕的后代,主张联齐抗秦,提倡“美政”。在流放期间,屈原为后世留下了许多不朽名篇。以屈原作品为主体的《楚辞》,与《诗经》并称“风骚”二体,对后世诗歌产生深远的影响。屈原是我国历史上最早的廉洁倡导者。年年端午,今又端午。

    • 迪拜是哪个国家的(迪拜简介)

      迪拜是阿拉伯联合酋长国人口最多的城市,也是该国七个酋长国之一迪拜酋长国的首府。面积约为4114平方公里,占阿联酋全国总面积的5.8%,继阿布扎比之后排名第二。2016年,迪拜酋长国国民生产总值为3768亿迪拉姆。迪拜是中东地区的经济金融中心,它也是中东地区旅客和货物的主要运输枢纽。继石油之后,迪拜的经济主要依靠旅游业、航空业、房地产和金融服务。2018年,被GaWC评为年度世界一线城市第九位。

    • 芭比娃娃制作方法(芭比娃娃制作方法是什么)

      我们一起去了解并探讨一下这个问题吧!芭比娃娃制作方法首先和制作所有的塑胶玩偶一样,制作母版模型是第一步,这些原模通常会使用雕塑专用的油泥等材料制作。制作好原模,就可以用金属翻模,在金属模具中倒入塑胶,等待冷凝取出,再打磨光滑。其次我们开始用画笔给芭比娃娃画上表情和颜色。第三步我们就要开始给头部植发了,检查一下发际线是否合适。最后就要开始给芭比娃娃做衣服了最后一个芭比娃娃就做好了。

    • 佛手瓜怎么做腌菜(佛手瓜做腌菜的方法)

      佛手瓜经过手工抓腌后,把腌制的水倒掉,然后再放入事先准备的凉开水中清洗一下,然后把清洗后的水倒掉,把佛手瓜滤干。把经过初步抓腌后的佛手瓜用容器装好,然后放入事先准备的米醋,白糖,辣椒和盐等,可根据自已的口味多加几款辅料。把所有的材料与佛手瓜混和后,放置到冰箱里,让它腌上三十分钟左右基本就可以吃了。