Linux的load average指标基本失去了作用

  • A+
所属分类:运维教程

uptime和top等命令都可以看到load average指标,从左至右三个数字分别表示1/5/15分钟的。

Load average概念源自UNIX系统,虽然各家公式不尽相同,但都是用于衡量正在使用CPU的进程数量和正在等待CPU的进程数量,一句话就是runnable 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设备有瓶颈。

  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:48   其中:访客  48   博主  0

    • avatar RAW9426 7

      签到成功!签到时间:今日的下午7:27:06,每日打卡,生活更精彩哦!

      • avatar 北酚繁坑智壹捌苏防膊缺栽徒蚀称捌召坎 9

        签到成功!签到时间:今日的上午5:41:58,每日打卡,生活更精彩哦!

        • avatar 峭泛毕谌蓝蠢硕票交我瘸终裁矢矫票秆呕 9

          签到成功!签到时间:今日的上午5:33:41,每日打卡,生活更精彩哦!

          • avatar 饲仁宦拥撂唤狗兔盼居诩臀惹照崖等是伎 9

            签到成功!签到时间:今日的上午3:30:48,每日打卡,生活更精彩哦!

            • avatar 竿竟佣偻烫氖纷酶乖用僖欢亢图菲才琢按 9

              签到成功!签到时间:今日的上午2:38:40,每日打卡,生活更精彩哦!

              • avatar 翁贸庇囱盎炙啪使噶捞罩妆苫澳崖秆厩依 9

                签到成功!签到时间:今日的上午1:40:05,每日打卡,生活更精彩哦!

                • avatar 试痘恍啪岛衙浪道率酵渡寡然灰轮谋孕币 9

                  签到成功!签到时间:今日的下午10:38:20,每日打卡,生活更精彩哦!

                  • avatar 倨棕汉壤前墙杭汗猜狼叵顺啡松秸背第樟 9

                    签到成功!签到时间:今日的上午2:58:13,每日打卡,生活更精彩哦!