zoukankan      html  css  js  c++  java
  • CPU利用率与Load Average的区别?

    CPU利用率,是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果CPU被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。

    Load AverageCPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。

    那么CPU利用率与Load Average对于性能测试的意义有什么区别呢?实际上,CPU利用率反映的是CPU被使用的情况,当CPU长期处于被使用而没有得到足够的时间休息间歇,那么对于CPU硬件来说是一种超负荷的运作,需要调整使用频度。而Load Average却从另一个角度来展现对于CPU使用状态的描述,Load Average越高说明对于CPU资源的竞争越激烈,CPU资源比较短缺。对于资源的申请和维护其实也是需要很大的成本,所以在这种高Average Load的情况下CPU资源的长期“热竞争”也是对于硬件的一种损害。

     

    番外篇

    对于定义和解释,感觉淘测试上的更容易理解:

    引用如下:

    CPU使用率:  一段时间内CPU的使用状况,从这个指标可以看出某一段时间内CPU资源被占用的情况。(http://www.taobaotest.com/blogs/2507

    Load Average:系统平均负载,在特定时间间隔内运行队列中的平均进程数。http://blog.csdn.net/hello_yang213/article/details/7455480   (介绍的更详细一些,)某一段时间内,CPU正在处理以及等待CPU处理的进程数的之和。Load Average是从另一个角度来体现CPU的使用状态的。

    http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html 这边说两者的区别,有人觉得专业,有人觉得赞,个人看了有点复杂,容易绕晕,可以几篇一起看就容易理解了。)

    引 http://www.taobaotest.com/blogs/2507

    CPU使用率和Load Average的关系:

             拿去医院体检做一个例子:

             用户:待检查的同学

             CPU:检查的科室(B超、眼科。。。。)

    1、  Load 高,CPU使用率低 :

    眼科一共有3个医生,检查有次序,必须前一个医生检查结束了才能到下一个医生处理

    由于第一个医生的检查耗时比较长,导致后面很多同学排队,但是接下去2个医生都处于空闲状态。

    Load:等待的同学,由于等待的同学较多,所以Load的值较高

    CPU使用率:只有一个医生处于工作状态,所以CPU的使用率为33.33%

    2、  Load低,CPU使用率高:

    假设B超科室有和眼科同样多的医生,但是每个医生之间的工作是独立的。

    来一个新同学的时间,大约是检查完一个同学的时间。

    Load:等待的同学,基本<=1

        CPU使用率:每个医生都处于忙碌状态,CPU使用率接近100%

    个人觉得这个例子举的比较好理解,CPU就像科室(含多个 医生),如果里面只有1个医生看病,另外2个闲着,CPU利用率是33.3%,然后外面很多排队等待使用CPU的人,这些就是排队的进程了,他们都是竞争 想要使用CPU,排队等待的人多,就是说明CPU的竞争比较激烈,就是系统平均负载Load Average。所以,cpu被占用了,利用率可能不高的,但是排队等待使用的进程很多,Load却高。所以,测试的时候,不能只看CPU利用率,也要看 系统平均负载Load Average。

    关于系统平均负载Load Average 的计算,可以参考这篇文章 :http://blog.csdn.net/hello_yang213/article/details/7455480

    Linux 突然很占cpu load average 很高!!!

    1、先使用top看下CPU占用高的进程,找出进程的进程ID(pid);
    查看方法:top
    2、根据进程ID(pid)查看是进程的那些线程占用CPU高。
    查看方法:top -Hp pid
    3、使用pstack,查看CPU占用高的线程在干什么。
    查看方法:pstack pid
    4、根据pstack分析,应该可以看出问题所在。

     

  • 相关阅读:
    账户管理命令 useradd、groupadd
    项目估算与计划不是一般的难!(1)——从建筑工程说起
    图的存储
    "Storage Virtualization" VS "Software-Defined Storage"
    项目代码风格要求
    struts2入门程序
    poj 3422 (费用流)
    项目估算与计划不是一般的难!(2)——估算要估啥?
    HDU1700:Points on Cycle
    数据结构 邻接矩阵深度及广度优先
  • 原文地址:https://www.cnblogs.com/zhengah/p/4939810.html
Copyright © 2011-2022 走看看