`
ruilin215
  • 浏览: 1148461 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

关于CPU使用率应用的误区和错误(译文)

 
阅读更多

转自7点: http://bbs.7dtest.com/thread-3668-1-1.html

译者: kaixin322 原作者:Chaitanya M Bhatt

谈起这个话题,盛行着很多误区、误解、错误观念。在这里,我将涉及到几个关键问题,并力争解释详细的事实及最佳做法。

错误的做法
获取对称式多处理器的服务器节点的系统级CPU使用率。(对称式多处理器:一个有多内核并且共享内存、总线和IO资源的CPU。)
大多数性能分析师或测试员通常的做法是:在压力测试期间,仅仅获取一个多内核服务器系统级的CPU使用率,就开始分析结果。用像LoadRunner这种工具获取你的UNIX/LINUX服务器系统的CPU使用率,是个非常大的误区。结果导致引起瓶颈原因的错误解析,错误的解决方案和为试图解决它而做的努力徒劳。
不同的软件,如数据库、中间件,拥有他们自己处理多核、多CPU的私有算法。
在负载均衡测试中,当你观察到系统CPU使用率在一个临界值下,这不总是意味着每个独立的内核都被平均加压。让我们举个例子:如果你注意到某个负载测试工具显示CPU使用率是25%,且假设这个服务器有四个处理器,这并不意味着所有的内核都被进程/线程平均负载。一个单独的内核可能被100%消耗了,而其他的内核则被100%闲置了。
使每个独立内核,平均或成比例的承担负载,依赖于应用程序的并行性,及测试软件是否有能力在SMP内核之间处理内部并行的查询。例如:Oracle支持内部并行查询。(例:在SMP模式下,把单一或独立查询的工作分给两个或更多内核处理,是可行的。) 而MySQL数据库则不提供此功能,结果独立查询将只被一个内核处理,即使这个CPU的使用率已经接近临界值。
另一个例子:你可能注意到,当执行负载测试时,一些和缓慢查询相关的事务,在数据库端奇异的失败了,即便CPU使用率在临界值内。现在,如果你深入挖掘这些缓慢查询,并把它和每个独立内核的CPU使用率相关联,你就可以看到,一些内核已经达到最大的100%,而其他却仍然在临界值内。这就是引起该问题的本质原因。

相关链接:
http://oreilly.com/catalog/oraclepp/chapter/ch01.html
http://www.forsythesunsolutions.com/node/73

衡量独立内核/CPU使用率的推荐工具:
Prstat
(属性 -m或-ml):可用于Solaris操作系统。允许你衡量每个线程的CPU使用率。

mpstat:
可用于基于linux/unix的操作系统。(注:Mpstat是Sysstat工具的一部分)

System Monitor:(系统监控)
基于界面的工具,可用于Red Hat Linux 操作系统。
相关链接:
http://www.cyberciti.biz/tips/ho ... pu-utilization.html


错误的观念
监控工具显示的100%CPU使用率可能是误导。在这种情况下,我可以坦率的告诉你-'Seeing is not believing!'(看到的并非就是可信的)。你可能对着监控器抓破脑袋,苦思冥想,因为找不到可行方案,来解决所观察的某些服务器的高CPU使用率问题。你的服务器可能消耗100%使用率,而负载却不可思议的低。
然而,好消息是使用率100%,并不总是意味着CPU就是性能瓶颈,尤其是在UNIX/LINUX操作系统下。除非,你看到vmstat里‘r’值(进程队列),超出了SMP服务器的CPU数量。例如:如果r=5,而你的SMP只有4个CPU或内核,那这绝对是瓶颈。队列的意思是,如果CPU不忙,当一个线程进入运行/处理队列(r)时,它立即会被一个CPU处理。但是,如果所有可用的CPU都忙于处理线程,后来进入的线程就只能在进程队列中等待,直到有可用的CPU来处理这些等待的线程。
这说明,当你看到一个非常高的CPU值警报时,问问自己:CPU使用率是什么?
答案:CPU使用率=100%-(%花在空闲业务的时间)
如果你理解了上述方程式,你就永远不会再在CPU使用率上迷失。


误区
上面提到的另一个误解是:高CPU使用率导致了缓慢的处理速度。
事实是:错。高CPU使用率不会拖慢应用程序处理速度。这只是另一个谬论。分析上诉方程式,并去除这个观念。CPU使用率和处理速度并无关系。
当到了分析和CPU严格相关资源的时候,工程师们往往忘记了,一个操作系统的调度或策划处理的基本法则是:确保CPU使用率在需要的时候尽可能的高。通常情况下,CPU运行在固定的时钟频率和固定速度的工作单位中。如果你理解了上述提到的规则,你就会意识到,处理速度和CPU使用率没有任何直接关系。无论CPU使用率是10%,还是100%,处理器总是会以相同的速度处理单位工作。只有当等待CPU处理的进程 /线程数总数,超过了SMP/服务器端所有可用的处理器时,线程/进程的执行速度才受影响。再次强调,下次在负载测试/性能测试时,不要忘记密切关注“r”(运行队列)值。
相关链接:
http://blogs.sun.com/partnertech ... _process_monitoring
http://www.dba-oracle.com/t_monitoring_unix_cpu.htm

分享到:
评论

相关推荐

    微处理器发展及应用误区分析.pdf

    微处理器发展及应用误区分析是指对微处理器的发展历史和应用误区的分析。随着微电子技术的发展,微处理器的应用范围不断扩大,出现了多种类型的微处理器,如通用 CPU、DSP 和 FPGA 等。这些微处理器的功能逐渐重叠,...

    CPU选购误区.pdf

    用户需要综合考虑核心数、频率和其他参数,确保CPU与自己的应用需求匹配。 最后,TDP(热设计功率)并不等于实际功耗。TDP是CPU在最大负载下产生的热量,而非实际消耗的功率。它用于指导散热器的选择,而CPU的实际...

    走出CPU散热风扇四大误区.pdf

    然而,在实际的硬件维护过程中,仍存在一些关于CPU散热风扇选择与使用的误区。本文将针对这四个常见误区进行详细解释,帮助用户走出这些认识上的盲区。 首先,我们来探讨第一个误区:“风扇功率越大,散热效果越好...

    CAD软件使用中的几个误区.pdf

    首先,文档标题《CAD软件使用中的几个误区.pdf》意味着本文将探讨在使用计算机辅助设计(CAD)软件时常见的错误概念或误解。CAD软件广泛应用于工程、建筑、制造等众多领域,旨在通过数字化设计工具提高设计效率和...

    变频器的应用误区.doc

    然而,在变频器的实际应用过程中,存在诸多误区,这些误区若不被正确识别和处理,将导致变频器不能达到预期的节能效果,甚至造成资源浪费和经济损失。因此,本文将对变频器应用中常见的误区进行解析。 首先,变频器...

    vivado使用误区与进阶

    因此,了解 Vivado 的使用误区和进阶方法对提高设计效率和质量非常重要。 一、Vivado 设计套件简介 Vivado 是 Xilinx 公司推出的 FPGA 设计套件,旨在帮助用户快速设计和实现高性能的数字电路。Vivado 提供了灵活...

    关于Java在软件开发中的误区分析.pdf

    尽管Java软件在应用率上表现不俗,但在软件开发实践中,仍存在一些误区,这些误区不仅影响了Java软件积极作用的发挥,也增加了软件开发的难度。 首先,我们来分析Java软件开发中涉及的关键技术。Java软件的关键技术...

    义隆单片机指令应用的误区与技巧

    综上所述,通过对义隆单片机指令的深入了解和恰当应用,不仅可以提高程序的效率,还能有效避免一些常见的编程误区。在实际开发过程中,建议开发者仔细研究并掌握这些指令的特点和用法,以便更好地发挥单片机的性能。

    Vivado使用误区与进阶.rar_Vivado使用误区与进阶_vivado

    《Vivado使用误区与进阶》是一份针对Vivado设计工具的深入学习资料,旨在帮助使用Vivado的开发人员避免常见的错误并提升工作效率。Vivado是由Xilinx公司推出的综合型硬件描述语言(HDL)开发环境,主要用于FPGA...

    变频器的应用误区分析

    本文通过对变频器应用的常见误区进行分析,旨在帮助用户正确使用变频器,避免投资浪费,实现最佳的经济和技术效益。 首先,关于变频器是否能够普遍节电的问题,存在着一定的误区。必须明确,变频器的节能效果并不是...

    Vivado使用误区与进阶

    《Vivado使用误区与进阶》一书深入探讨了Vivado这款强大的FPGA设计工具的使用技巧,旨在帮助用户避免常见误区,提升设计效率。Vivado是Xilinx公司推出的综合型开发环境,广泛应用于数字逻辑设计、系统级集成和硬件...

    构建Flex应用的10大误区

    构建Flex应用时,开发者常陷入一系列误区,这些误区可能导致应用性能下降、用户体验不佳或开发效率低。以下是关于Flex开发的10大误区的详细解析: 1. **仅用于Web 1.0应用**:Flex的强大之处在于其丰富的组件库和...

    EMC8BIT单片机指令应用的误区与技巧1.pdf

    EMC8BIT单片机指令应用的误区与技巧1pdf,

    vivado使用误区与进阶.rar

    在电子设计自动化(EDA)领域,Xilinx...理解并熟练应用各种约束类型,结合进阶技巧,可以避免常见的设计误区,提升设计的成功率和质量。通过深入学习和实践,设计师能更好地驾驭Vivado工具,完成复杂的数字系统设计。

    警惕选购CPU散热器的五大误区.pdf

    在选购CPU散热器时,消费者常常会陷入一些误区,这些误区可能导致购买的散热器并不能有效满足实际需求。本文将详细解析这些误区,并提供相应的选购指南。 首先,误区之一是过分关注风扇转速。很多人误以为风扇转速...

    初学者使用div和css误区

    div和CSS的布局方式为网页设计带来了革命性的变化,但正确理解和应用这些技术同样关键。初学者应避免上述误区,不断实践与学习,才能充分利用div和CSS的优势,创作出既美观又高效、兼容性强的网页作品。通过深入理解...

    UML建模的误区UML建模的误区

    关于需求和设计的固定化误区,一些管理者和团队成员常常在项目初期就要求需求和设计“冻结”。然而,这种做法忽略了软件开发过程中的变化和不确定性。软件开发是一个学习和探索的过程,面对不断变化的需求和技术挑战...

Global site tag (gtag.js) - Google Analytics