Linux服务器卡顿了如何排查?

今天分享一下Linux服务器卡顿了如何排查,这是运维新手的必修课,建议认真读完,建立整个排查思路非常重要。

生产环境验证过的 Linux 卡顿六步定位法:系统负载–》CPU–》内存–》磁盘IO–》磁盘空间–》网络

排查之前,自己心里必须现有一个模型。Linux 性能,本质上是由CPU,内存,磁盘IO,磁盘空间,网络五种资源决定,所有卡顿,必然来自其中一个,所以排查时就只需要一层层排查,很快就能找到问题。

Linux服务器卡顿了如何排查?

1 先看 Load

如果遇到系统卡顿,第一就应该想到系统负载

uptime
Linux服务器卡顿了如何排查?

输出有三个值,分别是过去1分钟,5分钟,15分钟平均负载情况。

负载Load 表示:

正在运行 + 等待 CPU + 等待 IO 的进程数

它反映的是:系统排队程度,但它不是CPU使用率,别搞错了。

如何判断异常?

假设服务器有 4 核CPU:

  • Load < 4 :表示正常
  • Load ≈ 4 :系统有点压力
  • Load >> 4 :系统拥堵

如果 Load 不高,系统整体资源没问题。你需要查的是应用层和网络的问题。

如果 Load 很高,说明资源出现瓶颈。接下来就需要判断是CPU还是IO有问题。

2 查看CPU情况

CPU一般用top命令查看,也可以用htop

top

需要关注4 个指标:

  • us  用户态
  • sy  内核态
  • id  空闲
  • wa  IO等待
Linux服务器卡顿了如何排查?

情况 1:CPU 打满

如果出现下面这些数字

us 95%
id 1%
wa 0%

这是算力不足。这种情况其实不多见。

记住不要去看%CPU这个值,这个值的百分比并不能实际体现CPU使用情况,需要看机器配置是多少的。

情况 2:CPU 很闲,但 Load 很高

us 15%
id 50%
wa 35%

注意:如果wa 很高。

这说明:进程在等磁盘。

这种情况,占生产环境卡顿的 60% 以上。

3 判断磁盘 IO

执行:

iostat -x 1

Linux服务器卡顿了如何排查?

重点看两个指标:

  • %util
  • await

判断逻辑

指标
含义
%util 接近 100%
磁盘被打满
await > 50ms
磁盘延迟异常

正常 SSD:1~5ms

如果 100ms 以上,系统一定卡。

接下来找是谁刷盘:判断哪个程序在占用IO

iotop
Linux服务器卡顿了如何排查?

有可能是下面这些情况:

  • 日志疯狂写入
  • 数据库 checkpoint
  • Docker overlay2
  • 程序死循环写文件

内存抖动

这种算是隐形杀手,偶尔也会遇到

vmstat 1

Linux服务器卡顿了如何排查?

重点关注:

  • si
  • so

如果持续 > 0。说明系统在交换内存。这叫内存抖动。

可能表现为CPU不高,但是机器卡,响应慢。

5 磁盘空间写满

还有可能是磁盘满了,导致一些业务异常或堵塞,服务器卡死之类的。

df -h
df -i

满了就及时处理就行了。

6 别忽略网络

还有可能是网络问题,一般表现SSH卡,web慢,ping正常但访问慢之类。

ss -s

如果连接数暴涨。

Linux服务器卡顿了如何排查?

或者:

netstat -s | grep retrans

出现大量重传,说明网络异常。

如果你掌握了上面几个命令和参数,基本可以判断那么的Linux卡在哪一步。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2616.html

Like (1)
Previous 2026年5月6日
Next 2026年5月7日

相关推荐