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分析,应该可以看出问题所在。

     

  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/zhengah/p/4939810.html
Copyright © 2011-2022 走看看