Linux性能优化之平均负载

来源:这里教程网 时间:2026-03-03 18:11:41 作者:

说起uptime熟悉Linux的人肯定不陌生,它告诉我们这个机器活了多久,  当前时间、系统运行时间以及正在登录用户数

$ uptime

 21:38:15 up 106 days,  6:15,  1 user,  load average: 0.05, 0.12, 0.12

    而最后三位表示平均负载,可能大家都会忽略。其  依次表示过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。

而平均负载该怎么理解呢?

    简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。

      所谓可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们  vmstat  命令看到的,处于 r 队列  状态(Running 或 Runnable)的进程。  不可中断状态的进程,  则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也是我们vmstat命令中看到的 b 队列状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

    其实不可中断状态实际上是系统对进程和硬件设备的一种保护机制。

    本文的意图并不是要给大家解释这些名词,而是像告诉大家平均负载多少时合理。

    通过  CPU个数  (查看  /proc/cpuinfo  获取  ,我们就可以判断出,当平均负载比 CPU 个数还大的时候,系统已经出现了过载。当然  最理想的情况是等于 CPU 个数  。主要概括为一下几种情况:

    1.  如果1分钟、5 分钟、15 分钟的三个值相差不大,那就说明系统负载平稳

    2.  如果头尾波动较大,说明系统负载在减少或增大

比如:  1.82,0.90,8.56,说明在过去 1 分钟内,系统有 82% 的超载,而在 15 分钟内,有 756% 的超载,从整体趋势来看,系统的负载在降低。一般  当平均负载高于 CPU 数量 80% 的时候,需要引起重视。

相关推荐