文档首页> 故障排查> CPU/内存/磁盘 IO 爆了:症状、原因、快速处理

CPU/内存/磁盘 IO 爆了:症状、原因、快速处理

发布时间:2026-01-29 21:32       

远程很卡、网站慢、任务跑不动,不一定是网络问题,常见是 CPU/内存/磁盘 IO 被打满。 本页给出:怎么判断、常见原因、怎么快速止损。

一、典型症状(对照即可)

  • CPU 高:SSH/远程桌面输入延迟大,接口响应慢,但网络测速可能正常。
  • 内存不足:程序频繁重启/卡死,系统开始大量使用 swap,整体变慢。
  • 磁盘 IO 高:打开文件/写日志很慢,数据库慢查询变多,系统 load 很高但 CPU 不一定满。
  • 磁盘满:服务异常、写入失败、数据库报错、面板提示空间不足。

二、先用 2 分钟确认是哪一类瓶颈

Linux 执行:

top
free -h
df -h
iostat -x 1 5
快速判读
  • top:看 %CPU、load、哪个进程占用最高。
  • free -h:看 available 是否很低、swap 是否在增长。
  • df -h:看磁盘是否接近 100%。
  • iostat:看 %util 是否长期接近 100%、await 是否明显偏高。

三、常见原因(按出现频率排序)

1)CPU 被打满

  • 程序死循环/异常请求导致线程飙升
  • 高并发访问但未做缓存/限流
  • 压缩/转码/编译等重任务同时运行

2)内存不足

  • 程序内存泄漏、缓存无限增长
  • 数据库/Java/Node 等未设置合理内存上限
  • 容器/多服务堆在同一台,资源规划不足

3)磁盘 IO 高 / 磁盘满

  • 日志暴涨(访问日志/错误日志/业务日志)
  • 数据库慢查询、缺索引导致大量读写
  • 下载/解压/备份/同步等大量读写任务
  • 临时文件/缓存文件长期不清理导致磁盘满

四、快速处理(先恢复业务,再慢慢优化)

1)先找到“谁在吃资源”
top
ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head

找到占用最高的进程名称,确认是否是你的业务程序、数据库、面板、或异常进程。

2)CPU 满:先止血
  • 临时降低并发/限流(应用或网关层)。
  • 暂停高负载任务(转码/编译/批处理)。
  • 确认是否异常请求导致(看 Nginx/应用日志是否突然暴涨)。
3)内存不足:优先避免 swap 持续增长
  • 重启异常内存进程(先确认是你的业务服务)。
  • 给关键服务设置合理内存上限(例如缓存大小、JVM 参数等)。
  • 长期建议:升级内存或拆分服务。
4)磁盘 IO/磁盘满:优先处理日志与临时文件
df -h
du -sh /* 2>/dev/null | sort -h | tail
du -sh /var/log/* 2>/dev/null | sort -h | tail
  • 清理无用日志/临时文件,释放空间(谨慎操作,先确认文件用途)。
  • 开启日志轮转(logrotate),避免日志无限增长。
  • 数据库慢查询:先查慢日志与索引,再考虑升级磁盘/拆分。

五、什么时候需要提交工单

  • 确认不是业务进程导致,但资源仍异常(例如磁盘 IO 持续 100% 且无明显读写进程)。
  • 实例频繁无故重启/掉盘/只读等异常现象。
  • 你无法登录系统,仅能通过控制台看到异常。

工单提交模板(复制填写)

实例/订单号:
公网IP:
节点/地区:
异常类型:CPU高 / 内存不足 / swap增长 / IO高 / 磁盘满
开始时间:xxxx-xx-xx xx:xx(是否持续:)
top 截图:已附
free -h 截图:已附
df -h 截图:已附
iostat -x 1 5 输出:已附(如可提供)
占用最高的进程:进程名/占用(如已确认)
业务类型:网站/数据库/下载分发/其他(简述)
扫一扫访问手机版
30+ 高防云产品
1000+企业的共同选择