当前位置 : IT培训网 > IT培训 > 交流分享 > 如何计算Linux CPU负载率 Linux CPU负载率计算方式大揭密

如何计算Linux CPU负载率 Linux CPU负载率计算方式大揭密

时间:2018-11-14 15:46:00  来源:编程网  作者:IT培训网  已有:名学员访问该课程
Linux CPU负载率如何计算?这个问题难住了不少人,难道这个问题真的就是很难解吗?答案是否定的,Linux CPU负载率的计算方式其实很简单,下面我们一起跟随小编走进Linux的世界,花花世界近在眼前。

  Linux CPU负载率如何计算?这个问题难住了不少人,难道这个问题真的就是很难解吗?答案是否定的,Linux CPU负载率的计算方式其实很简单,下面我们一起跟随小编走进Linux的世界,花花世界近在眼前。

如何计算Linux CPU负载率 Linux CPU负载率计算方式大揭密_www.itpxw.cn

  Linux CPU负载率如何计算?

  average的概念源自UNIX系统,虽然各家的公式不尽相同,但都是用于衡量正在使用CPU的进行数量和正在等待CPU的进程数量,一句话就是runable processes的数量。所以Load average可以作为CPU瓶颈的参考指标,如果大于CPU的数量,说明CPU可能不够用了。但是,在Linux上有点差异!

  Linux上的load average除了包括正在使用CPU的进程数量和正在等待CPU的进程数量之外,还包括uninterruptible sleep的进程数量。通常等待IO设备、等待网络的时候,进程会处于uninterruptible sleep状态。Linux设计者的逻辑是,uninterruptible sleep应该都是很短暂的,很快就会恢复运行,所以被等同于runnable。然而uninterruptible sleep即使再短暂也是sleep,何况现实世界中uninterruptible sleep未必很短暂,大量的、或长时间的uninterruptible sleep通常意味着IO设备遇到了瓶颈。众所周知,sleep状态的进程是不需要CPU的,即使所有的CPU都空闲,正在sleep的进程也是运行不了的,所以sleep进程的数量绝对不适合用作衡量CPU负载的指标,Linux把uninterruptible sleep进程算进load average的做法直接颠覆了load average的本来意义。所以在Linux系统上,load average这个指标基本失去了作用,因为你不知道它代表什么意思,当看到load average很高的时候,你不知道是runnable进程太多还是uninterruptible sleep进程太多,也就无法判断是CPU不够用还是IO设备有瓶颈。

  从另一个方面来说,也就可以解释为什么磁盘慢时(大量磁盘使用时),CPU负载会飙高了。基本上我碰到CPU负载高的情况就两种情况:CPU本身处理太多任务,再加上软中断和上下文切换太频繁导致负载高;再就是磁盘太慢导致了不可中断睡眠太多导致CPU负载高。

  看到上面的分析,是不是有种豁然开朗的感觉,我们一起去看世界吧!

顶一下
(0)
0%
踩一下
(0)
0%

IT培训0元试听 每期开班座位有限.0元试听抢座开始! IT培训0元试听

  • 姓名 : *
  • 电话 : *
  • QQ : *
  • 留言 :
  • 验证码 : 看不清?点击更换请输入正确的验证码

在线咨询在线咨询

温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。

------分隔线----------------------------
------分隔线----------------------------

推荐内容

相关热点