请扫码加微信



7*24小时服务热线

0371-88888360

关注微信公众号

首页 / 新闻中心 / 文章详情

文章详情

易方科贸新闻中心 · 详细内容 · 行业资讯 / 帮助指南

服务器负载高 top/uptime 排查指南

分类 服务器租用帮助 阅读441 次 发布日期 2026-05-29
服务器明明 CPU、内存、带宽都没跑满,可就是响应慢、接口超时、页面卡顿,用 uptime 一看 load average 高得吓人。这是线上最常见、也最容易误判的故障。
很多运维一上来就扩配置、杀进程,结果问题反复。其实只要用好uptime和top两个命令,就能快速定位根因。

一、先搞懂:load average 到底是什么?

负载(load)代表等待系统资源的进程队列长度
简单理解:
  • 进程在跑 → 不占负载
  • 进程在排队等 CPU / 等磁盘 IO / 等锁 → 算负载

看负载最基础命令:uptime

bash
运行
uptime 
输出类似:
plaintext
14:35:21 up 12 days, 23:15,  2 users,  load average: 5.28, 4.36, 3.88
三个数字分别是:1 分钟、5 分钟、15 分钟的平均负载。

怎么判断负载高不高?

  • 负载 ≤ CPU 核心数 → 正常
  • 负载 > 核心数 2 倍 → 明显高负载
  • 负载 > 核心数 4 倍 → 严重拥堵,业务必卡
例:4 核服务器,load > 8 就已经很危险。

二、第二步:top 命令入门,一眼看懂系统状态

直接输入:
bash
运行
top 
重点看这几行:

1. 顶部:load average

和 uptime 一样,判断是否高负载。

2. % Cpu (s):CPU 使用情况

  • us:应用占用 CPU
  • sy:系统内核占用
  • id:空闲 CPU
  • wa:等待磁盘 IO(关键指标)

3. KiB Mem / Swap:内存状态

内存耗尽也会拉高负载。

4. 进程列表

默认按 CPU 排序。
M → 按内存排序
1 → 显示每个核心 CPU
P → 按 CPU 排序

三、最关键:负载高的 3 种典型情况

情况 1:CPU 密集型(us 高、id 低)

现象:
  • load 很高
  • % us 很高
  • % id 接近 0
  • % wa 很低
原因:
  • 代码死循环、复杂计算
  • 大量并发请求
  • 加密 / 压缩 / 图片处理
  • 挖矿程序
处理:
  • top 找到高 CPU 进程
  • kill 或优化代码
  • 限制并发、扩容 CPU

情况 2:IO 密集型(wa 高、CPU idle 不低)

这是最容易被误解的一类:
  • load 非常高
  • CPU 空闲(% id 很高)
  • % wa 明显偏高(甚至 30%+)
典型表现:系统很卡,但 CPU 很闲。
原因:
  • 磁盘读写慢(机械硬盘尤甚)
  • MySQL 大量刷脏页、慢查询
  • 日志疯狂写入
  • 磁盘满、inode 满
处理:
  • iotop 定位高 IO 进程
  • 清理日志、迁移到 SSD
  • 优化数据库、降低写入

情况 3:等待锁 / 进程阻塞(us、wa 都不高)

现象:
  • load 高
  • CPU 空闲
  • IO 也不高
原因:
  • 进程等待锁(数据库锁、文件锁)
  • 网络调用超时(HTTP/DB 连接挂起)
  • 死锁、长事务
处理:
  • 查看应用日志
  • 查看数据库连接、事务
  • 抓线程栈(jstack、pstack)

四、一套标准排查流程(照着做就行)

1. 看负载高不高

bash
运行
uptime 

2. 看是 CPU 高、IO 高,还是空闲

bash
运行
top 

3. 如果是 CPU 高

bash
运行
# 按 CPU 排序 top -o %CPU
找到进程 → 看程序逻辑 → 优化 / 限流。

4. 如果是 IO 高

bash
运行
iotop
看谁在疯狂读写 → 清理日志 → 优化 DB → 换 SSD。

5. 如果是等待 / 阻塞

  • 查看应用日志
  • 查看数据库连接数
  • 查看网络连接是否满了
bash
运行
ss -s ss -ntpl | wc -l 

五、常见真实场景

场景 1:PHP-FPM 进程太多

load 飙升,CPU 不高,IO 一般
解决:减少 pm.max_children

场景 2:MySQL 慢查询泛滥

load 高,wa 高,CPU 一般
解决:kill 慢查询,加索引

场景 3:定时任务扎堆跑

备份、统计脚本同时执行
解决:错峰执行、加限流

场景 4:被 CC 攻击

Nginx/Apache 瞬间打满
解决:封 IP、限流、WAF

六、快速判断口诀

  • load 高 + CPU 满 → 计算密集,查代码
  • load 高 + CPU 闲 + wa 高 → 磁盘瓶颈,查 IO
  • load 高 + CPU 闲 + wa 低 → 阻塞等待,查锁 / 网络
  • load 持续涨不回落 → 内存泄漏或死循环

七、总结

服务器负载高、响应慢,不要一上来就重启或扩容
先用uptime看负载,再用top区分是 CPU、IO 还是阻塞问题,90% 的问题都能快速定位。