服务器负载高先看什么:用 uptime、top 与 vmstat 三步定位 CPU 还是 I/O 瓶颈

举报
yd_226757564 发表于 2026/11/05 10:03:45 2026/11/05
【摘要】 服务器变慢时先别急着扩容:用 uptime 看负载趋势、top 定位占用进程、vmstat 区分 CPU 还是 I/O 瓶颈,再按结论表采取下一步排查动作。

服务器变慢时,先不要急着扩容或重启。先分清瓶颈在 CPU、内存、磁盘 I/O 还是网络,否则扩容也可能扩错地方。下面用三条常用命令,做一次可复现的定位。

第一步:uptime 看负载与趋势

执行 uptime,重点看三个平均负载和在线时长:

uptime

输出示例:

10:05:00 up 12 days,  3:20,  2 users,  load average: 8.20, 6.10, 3.40

判断方法很简单:把 1 分钟、5 分钟、15 分钟负载和 CPU 核数放在一起比。如果负载长期高于核数,说明任务在排队;如果 1 分钟负载高、15 分钟负载低,可能是突发任务,值得先查最近启动的进程和定时任务。

第二步:top 看谁在占资源

执行 top,按 P 按 CPU 排序,按 M 按内存排序:

top

重点看三类信息:CPU 使用率最高的进程、内存占用最高的进程,以及 %wa(等待 I/O 的 CPU 时间)。如果 %wa 很高,瓶颈往往不在算力,而在磁盘或存储;如果某个进程长期占满单核,还要看它是单线程还是多线程,避免把单核瓶颈误判为整机算力不足。

第三步:vmstat 看系统级瓶颈

执行 vmstat 1 5,每秒采样一次、共 5 次:

vmstat 1 5

重点看 r、b、si、so、bi、bo、wa 这几列:r 大表示可运行进程多、CPU 排队;b 大表示进程在等 I/O;si、so 持续大于 0 表示在换页,内存可能不足;bi、bo 持续很高则先看磁盘读写,再结合 iostat 确认是哪块盘。

一个速查结论表

现象 更可能的瓶颈 下一步
负载高于核数,%wa 很低 CPU 查 top 中 CPU 最高的进程
%wa 高,b 列大 磁盘 I/O 查 iostat 与慢查询、日志写入
si、so 持续大于 0 内存 查内存占用与是否需要扩容
负载突发后回落 临时任务 查定时任务与新上线变更

排查时顺手记三件事

一是记录采样时间、负载值和关键进程名;二是确认最近是否有发布、定时任务或备份窗口;三是先做可回滚的止血动作,例如限流、停掉非核心任务,再谈扩容。把这三步固定成习惯,下次服务器变慢,就能先定位再动手,而不是先重启再猜原因。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。