品牌设计课程哈尔滨关键词优化平台

pingmian/2026/1/20 8:32:56/文章来源:
品牌设计课程,哈尔滨关键词优化平台,成都品牌设计策划,全网自媒体平台大全来源#xff1a;内核月谈, 原文链接#xff1a;http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html本文中若有任何疏漏错误#xff0c;责任在于编译者。有任何建议和意见#xff0c;请回复内核月谈微信公众号#xff0c;或通过 caspar at linux.… 来源内核月谈, 原文链接http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html本文中若有任何疏漏错误责任在于编译者。有任何建议和意见请回复内核月谈微信公众号或通过 caspar at linux.alibaba.com 反馈。导读本文翻译自 Brendan Gregg 去年的一篇博客文章 “CPU Utilization is Wrong”从标题就能想到这篇文章将会引起争议。文章一上来就说我们“人人皆用、处处使用每个性能监控工具里都在用”的 top 命令里的 “%CPU” 指标是不对的其并非用于衡量 CPU 的繁忙程度的正确指标作者谴责了一下众人(或许也包括你我)的这一行为是具有很大的误导性(deeply misleading)的而且这种情况还在连年恶化。对于这么大一顶帽子让我们暂且按下躁动的心听听作者是怎么深入阐释他的观点的。1. 引言可能你认为的 90% CPU 利用率意味着这样的情形而实际却可能是这样的CPU 并非 90% 的时间都在忙着很大一部分时间在等待或者说“停顿(Stalled)”了。这种情况表示处理器流水线停顿一般由资源竞争、数据依赖等原因造成。多数情况下表现为等待访存操作其中又以读操作为主。在停顿周期内不能执行指令这意味着你的程序不往前走。值得注意的是图中 “Stalled” 状态所占的比例是作者依据生产环境中的典型场景计算而来具有普遍现实意义。因此大多时候 CPU 处于停顿状态而你却不知道因为 CPU 利用率这个指标没有告诉你真相。通过进一步分析 CPU 停顿的原因可以指导代码优化提高执行效率这是我们深入理解CPU微架构的动力之一。2. CPU 利用率的真实含义是什么我们通常所说的CPU利用率是指 “non-idle time”即CPU不执行 idle thread 的时间。操作系统内核会在上下文切换时记录CPU的运行时间。假设一个 non-idle thread 开始运行100ms 后结束内核会认为这段时间内 CPU 利用率为 100%。这种度量方式源于分时复用系统。早在阿波罗登月舱的导航计算机中idle thread 当时被叫做 “DUMMY JOB”工程师通过比对运行 “DUMMY JOB” 和 “实际任务” 的时间来衡量导航系统的利用率。那么这个所谓“利用率”的问题在哪儿呢当今时代CPU 执行速度远远大于内存访问速度等待内存的时间成为占用 CPU 时间的主要部分。当你在 top 中看到很高的 “%CPU”你可能认为处理器是瓶颈但实际上却是内存。在过去很长一段时间内CPU 频率增长的速度大于 DRAM 访存延时降低的速度CPU DRAM gap直到2005年前后处理器厂商们才开始放弃“频率路线”转向多核、超线程技术再加上多处理器架构这些都导致访存需求急剧上升。尽管厂商通过增大 cache 容量、优化 cache 策略、提升总线带宽来试图缓解访存瓶颈但我们的程序仍深受 CPU stall 困扰。3. 如何真正辨别 CPU 在做些什么在 PMC(Performance Monitoring Counters) 的帮助下我们能看到更多的 CPU 运行状态信息。下图中perf 采集了10秒内全部 CPU 的运行状态。这里我们重点关注的核心度量指标是 IPC(instructions per cycle)它表示平均每个 CPU cycle 执行的指令数量很显然该数值越大性能越好。上图中 IPC 为 0.78看起来还不错是不是 78% busy 呢现代处理器一般有多条流水线运行 perf 的那台机器IPC 的理论值可达到 4.0。如果我们从 IPC的角度来看这台机器只运行到其处理器最高速度的 19.5%0.78 / 4.0)。幸运的是在处理器内部有很多 PMU event可用来帮助我们分析造成 CPU stall 的原因。用好 PMU 需要我们熟悉处理器微架构可以参考 Intel SDM。4. 最佳实践是什么如果 IPC 1.0, 很可能是 Memory stall 占主导可从软件和硬件两个方面考虑这个问题。软件方面减少不必要的访存操作提升 cache 命中率尽量访问本地节点内存硬件方面增加 cache 容量加快访存速度提升总线带宽。如果IPC 1.0, 很可能是计算密集型的程序。可以试图减少执行指令的数量消除不必要的工作。火焰图CPU flame graphs非常适用于分析这类问题。硬件方面尝试超频、使用更多的 core 或 hyperthread。作者根据PMU相关的工作经验设定了1.0这个阈值用于区分访存密集型(memory-bound)和计算密集型(cpu-bound)程序。读者可以根据自己的实际工作平台合理调整这个阈值。5. 性能工具应该告诉我们什么作者认为性能工具中使用 %CPU 时都应该附带上 IPC或者将 %CPU 拆分为指令执行消耗 cycle(%INS) 和 stalled 的 cycle(%STL)。对应到 top在 Linux 系统有一个能够显示每个处理器 IPC 的工具 tiptop:6. 其他可能让 CPU 利用率引起误解的因素除了访存导致的 stall 容易让人误解 CPU 利用率外还有其他一些因素温度原因导致处理器 stallTurboboost 干扰了时钟速率内核使得时钟速率加快平均带来的问题1分钟利用率平均 80%掩盖了中间 100% 部分自旋锁: CPU 一直在被使用同时 IPC 也很高但是应用逻辑上并没有任何进展。7. 更新CPU 利用率真的错了吗?这篇文章引起了大量留言http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html 的留言栏;https://news.ycombinator.com/item?id14301739https://www.reddit.com/r/programming/comments/6a6v8g/cpu_utilization_is_wrong/总结下作者的回答是这里讨论的并不是 iowait (那是磁盘IO)而且如果你已经确认是访存密集型是有些处理办法参考上面。那么 CPU 利用率指标是确确实实错误的还是只是容易误导如作者前面所说他认为许多人把高 CPU 利用率理解为瓶颈在 CPU 上这一行为才是错误的其实单看 CPU 利用率并不清楚瓶颈在何处很多时候瓶颈是在外部。这个指标技术上看是否正确如果 CPU stall 的周期并不能被其他地方使用它们是不是也就因此是“忙于等待“听起来有点矛盾在有些情况确实如此你可以说 CPU 利用率作为操作系统级别的指标技术上看是对的但是容易产生误导。从另一个角度来说有超线程的情况下那些 stalled 的周期是可以被其他线程使用的这时 “%CPU” 可能会将可用的周期统计为正在使用这种情况是错误的。这篇文章作者想关注的是解释清楚这个问题并给出解决方法建议但没错CPU 利用率这个指标本身也是存在一些问题的。当你可能会说利用率作为一个指标已经不对Andrian Cockcroft之前讨论已经指出过 (http://www.hpts.ws/papers/2007/Cockcroft_HPTS-Useless.pdf )。8. 结论CPU 利用率已经开始成为一个容易误导的指标它包含访存导致的等待周期这样会影响一些新应用。也许 “%CPU” 应该重命名为 “%CYC”cycles的缩写。要清楚知道 “%CPU” 的含义需要使用其他指标进行辅助其中就包括每周期指令数(IPC)。IPC 1.0 多半意味着访存密集型IPC 1.0 多半意味着计算密集型。作者之前的文章中涵盖有 IPC 说明以及用于测量 IPC 的 Performance Monitoring CountersPMCs的介绍。所有的性能监控产品如果展示 “%CPU”都应该同时展示 PMC 指标用于解释其真实意义不要误导用户。比如可以把 “%CPU” 和 “IPC” 一起放或者说指令执行消耗周期和 stalled 周期。有这些指标之后开发者和操作者就能够知道该如何更好地对应用和系统进行调优。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站设计的一般步骤是什么?前端可以做网站吗

前言 本文将会向你介绍哈希概念,哈希方法,如何解决哈希冲突,以及闭散列与开散列的模拟实现 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经…

中文网站建设中模板可以做图的网站

澳门服务器是指位于澳门的服务器,具有以下特点: 地理位置优越:澳门位于珠江口西侧,靠近香港,是中国内地与香港、澳门地区重要的交通枢纽。澳门服务器因此在访问速度和延迟方面表现出色。 稳定的网络连接:澳门拥有完善的网络基础设施,包括高速稳定的互联网连接和先进的通信技术…

asp与sql做网站让人做网站需要注意什么

小波分析是近30年来发展起来的数学分支,是Fourier分析划时代发展的结果,由法国工程师Morlet首先提出,后广泛应用于信号处理、图像处理与分析、地震勘探、故障诊断、自动控制等领域,小波就是小的波形,所谓“小”是指它具…

网站推广工具有企业服务包括哪些

linux内核的裁剪和移植具体都在这个网址里面。https://blog.csdn.net/xie0812/article/details/10816059https://blog.csdn.net/xie0812/article/details/10821779转载于:https://blog.51cto.com/13401435/2145947

如何选择网站建设无极网络

看题: 我们令f[i][j]为前i个物品放满容量为j的背包的最大价值。 f[i][j]max(f[i-1][j],f[i-1][j-c[i]]w[i]); 我们开始全副成负无穷。f[0][0]0;最后循环最后一行求max; 负无穷:0xc0c0c0c0;正无穷:0x3f3f3f3f 下面是v12,n6的图示&#xff…

网站建设的要求有哪些泉州建设部网站

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.FlexViewer简介 FlexViewer框架为Esri提供的可以高效开发基于WEB的地理信息应用系统的一种完全免费的应用程序框架。目前有两种版本,一种…

网站建设视频下载营销网络分布图

一、分析 分析过程网上有很多,这里只说个大概,主要是提供golang源码 请求网站,发现前两次请求都会返回521,第三次请求成功,说明前两次请求肯定是干了什么事情;使用接口请求工具模拟请求分析该过程 使用postman工具请求 a. 第一次请求会在响应头返回jsluid,返回内容中拼接…

自己的网站是什么样子的塘厦镇做网站

导读: 除了语文数学这种常规科目,最让家长们焦虑的就是英语。现在的孩子,英语启蒙都很早,但是对英语的兴趣总是开始还可以,越往后越没动力和兴趣,稍微遇到点挫折就不想坚持了。钱也花了,好老师也…

遵义做什么网站好青海wap网站建设比较好

前言 “绿水青山就是金山银山”,水利环境一直是国际生态部门关注的重点。随着经济的发展、针对水利环境的监管也日趋严格,尤其是重点河、湖水系、水源地、城市内河等成为重点监管对象,监管力度也愈来愈严格,监测布点密度不断加大。…

搭建网站首页做长尾词优化去哪些网站

Spring帝国 Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验。在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词,那么Sp…

建设企业网站需要哪些东西广西壮族自治区住房和城乡建设厅网站

完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮…

甘肃建设厅网站官网微餐饮网站建设平台

文章目录 设计模式概述创建型模式:结构型模式:行为型模式: 设计模式概述 设计模式是什么? 设计模式的一般定义为: 设计模式(Design Pattern)是一套反复使用、多人知晓的,经过分类…

佛山网站建设价格多少敬请期待的文案

1. 简单说下你对并发和并行的理解? 2. 同步、异步、阻塞、非阻塞的概念 3. 进程和线程的基本概念 4. 进程与线程的区别? 5. 为什么有了进程,还要有线程呢? 6. 进程的状态转换 7. 进程间的通信方式有哪些? 8. 进程的调度…

做网站排版用什么软件广州增城做网站

1.,首先看ec待机条件: 待机供电,32k时钟,复位,适配器检测,开关信号。但是视频居然是找适配器的接口,跟着视频走,所以我先找打了适配器接口j24。vint20为公共点,我查了vint20的所有接线发现没有小…

深圳网站设计招聘信息网站设计自己申请

处理数据之前的pre-process 观察下载的数据文件train.csv train.csv只有每个月前20天的数据,另外每个月剩下10天数据用于作业结果评估,对学生不可见 观察数据发现rainfall栏有很多NR表示没有降雨,但是我们只需要数字,因此可以使用…

百度广告投放东莞seo建站优化公司

1、我们在linux上简单看路由信息使用下面命令 route -n

广州手机网站建设报价表跨境电商流程

所谓变量,就是用字母、数字和下划线组成的一个标识符。 按照数据类型的不同,变量可以分为标准类型和用户自定义类型。其中标准类型包括布尔型 ( BOOL )、整型( INT )、实型( REAL &#xff09…

网站怎么做组织图自己怎么做网址

在 MIP 推出后,我们收到了一些站长的疑问。现将常见问题整理出来,帮助大家了解 MIP 的知识。 一、MIP 认知类问题二、改造前准备三、前端改造,组件使用四、提交生效五、MIPCache六、更多学习资源 一、MIP 认知类问题 1.1 MIP 化的收益是什…

莆田网站建设方法如何做网站教学

1.主线程退出其他线程不退出,主线程应调用pthread_exit; 2.避免僵尸线程:pthread_join、pthread_detach、pthread_create指定分离属性。被join线程可能在join函数返回前就释放完自己的所有内存资源,所以不应当返回被回收线程栈中…

discuz做淘客网站为什么做美妆网站

场景: 移动端h5中,当我们需要在地图中展示很多marker点坐标的时候,通常会使用 bm-marker ,去循环生成marker点,在数量不多的情况下是没问题的,但是随着数据量的增加,地图就会变得卡顿,以及渲染延…