Linux高负载需先看负载值是否越界,再结合CPU、I/O、内存、进程四方面交叉验证;重点关注loadavg三值与核心数关系,区分CPU型(%wa低)与I/O型(%wa高),用mpstat、iostat、pidstat等工具定位瓶颈。

Linux高负载不是“CPU使用率高”那么简单,它反映的是系统整体就绪队列的繁忙程度。真正关键的是:先看负载值是否越界,再结合 CPU、I/O、内存、进程四方面交叉验证,避免误判。
一、快速确认负载是否异常
执行 uptime 或 cat /proc/loadavg,重点关注三个平均值(1/5/15分钟):
- 查 CPU 核心数:nproc 或 grep -c 'processor' /proc/cpuinfo
- 合理阈值参考:负载 > 核心数 × 0.7 就该警惕;> 核心数 × 1.5 通常已影响服务响应
- 若 1 分钟负载远高于 15 分钟(如 8.2 vs 1.3),说明突发压力刚发生,需立即介入
二、区分是 CPU 型还是 I/O 型高负载
仅看 top 里的 %CPU 容易漏掉真相。重点看 %wa(iowait) 和各指标组合:
- CPU 高 + %wa 低(:典型 CPU 密集型,用 mpstat -P ALL 1 3 看哪颗核打满,再用 pidstat -u 1 找高 CPU 进程
- 负载高 + %CPU 低 + %wa 高(>10%):I/O 瓶颈,立刻运行 iostat -x 1 3 查 %util 是否接近 100%,再用 iotop 定位读写大户
- vmstat 1 5 中 r 值持续 > 核心数:就绪队列堆积,说明任务太多或响应太慢,需结合上面两类深挖
三、精准定位“搞事情”的进程和线程
找到罪魁祸首只是第一步,得锁定具体行为:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~