系统负载 load average 详解

一、load average 是什么?

执行:

bash

uptime
# 或
top

会看到类似:

load average: 1.50, 1.25, 0.95

分别代表:

  • 1 分钟平均负载
  • 5 分钟平均负载
  • 15 分钟平均负载

含义:

等待 CPU 资源的进程队列长度

数字越大 = 系统越忙、越堵。

二、怎么判断负载高不高?(最核心)

负载高不高,只看一个东西:CPU 核心数

公式

负载值 ≤ CPU 核心数 → 正常

负载值 > CPU 核心数 → 开始拥堵

举例

  • 1 核 CPU:
    • load < 1 → 轻松
    • load 1~2 → 有点忙
    • load > 5 → 卡死
  • 4 核 CPU:
    • load < 4 → 正常
    • load 4~8 → 偏高
    • load > 10 → 高负载

三、怎么看自己几核?

bash

# 看逻辑CPU核心数
grep -c 'processor' /proc/cpuinfo

四、三个数字怎么看?(实战技巧)

  • 1 分钟高,5、15 低:瞬间压力,临时高峰
  • 1、5 分钟高,15 低:压力持续几分钟,要观察
  • 三个都高:系统长期高负载,必须处理

五、负载高 = CPU 忙?不一定!

很多新手误区:

load 高 ≠ CPU 100%

负载高有三种可能:

  1. CPU 密集(计算、压缩、编译)
  2. IO 密集(磁盘读写、MySQL、日志疯狂写)
  3. 大量等待锁 / 进程阻塞

六、负载高了怎么排查?(万能四件套)

1. 先看整体

bash

top

看:

  • load average
  • %Cpu(s)
  • % wa(IO 等待)

2. 看谁吃 CPU

bash

top 后按 P

3. 看谁吃磁盘 IO

bash

iotop

4. 看谁用磁盘最多

bash

du -sh /* | sort -rh | head 10

七、最简单的判断口诀(背这个就行)

  1. 先看核心数
  2. 负载 ≤ 核数 → 没事
  3. 1 分钟突高 → 临时
  4. 三个都高 → 真忙
  5. CPU 高 → 杀进程
  6. % wa 高 → 查磁盘 / MySQL / 日志

八、几个实战判断示例

  • 4 核,load: 2.0, 1.8, 1.5 → 正常
  • 4 核,load: 6.0, 5.5, 4.5 → 偏高
  • 4 核,load: 12, 10, 8 → 严重高负载
滚动至顶部