做个人站长这么久,最慌的莫过于后台突然报警、网站打不开、SSH 卡成 PPT,尤其是手里还没大佬可问的时候,真的容易手忙脚乱。 我自己踩过太多坑:服务器莫名其妙负载爆高、CPU 打满、磁盘卡死、网络丢包…… 一开始只会瞎重启,治标不治本,过一会儿又炸。
后来慢慢总结出一套最实用、最不绕弯、新手也能照抄的排查流程,就靠 7 个命令,基本能定位 99% 的 Linux 服务器卡顿问题。今天这篇全是实战经验,没有花里胡哨的理论,你遇到卡顿直接照着敲就行。
先说明一句大白话
服务器卡顿,无非就这几个原因:
- CPU 跑满、内存爆了、磁盘 I/O 卡死、网络炸了、某个进程发疯
下面这些命令,就是按这个思路来的。
1. top —— 先看整体状态(第一命令必敲)
服务器一卡,我第一件事就是敲:
看三样东西:
一眼就能判断是CPU 瓶颈、内存瓶颈,还是正常波动。
如果看到某个进程 CPU 100% 或 200%,直接记 PID,下一步就干它。
2. uptime —— 快速看负载(1 秒判断卡不卡)
不想进 top 时,我直接用:
看后面三个数字:1 分钟、5 分钟、15 分钟负载。
这个命令最轻量,卡到连 top 都进不去时还能用。
3. free -h —— 看是不是内存炸了
很多时候卡顿不是 CPU,是内存用光开始吃 Swap,瞬间卡爆。
重点看:
解决办法一般就两个:
4. df -h —— 检查磁盘是不是满了
磁盘 100% 会导致:
看哪块盘 Use% 到 100%,直接清理。
我遇到好几次,都是日志文件把磁盘撑爆。
5. du -sh /* —— 找到谁占满了磁盘
df 看到满了,下一步就是找元凶:
逐层定位:
du -sh /var/*du -sh /var/log/*
大部分都是:
6. iostat 1 —— 看是不是磁盘 I/O 卡死
CPU 正常、内存正常,但就是卡?90% 是磁盘 I/O 满了。
看 % util 那一列:
- 典型场景:MySQL 疯狂查询、日志狂写、备份脚本在跑
这种情况你重启都没用,必须找到疯狂读写的进程。
7. netstat -antp 或 ss -tulnp —— 最后看网络
如果前面都正常,那就是网络或端口被打满:
看:
我自己的一套排查流程(你直接照抄)
给你们我真实的排查顺序,每次卡顿都这么干:
uptime → 看负载top → 看哪个进程搞事free -h → 看内存df -h → 看磁盘满没iostat 1 → 看磁盘 I/Onetstat → 看网络连接
一套下来,1 分钟内基本能定位问题。
最后给个人站长一句实在话
Linux 服务器卡顿真的不可怕,可怕的是不懂排查只会重启。
我最开始也啥都不会,被坑到怀疑人生,后来把这些命令练熟,现在服务器一卡,我反而很淡定,敲几行命令就知道哪里出问题。
这 7 个命令真的够用,不用记几十上百个,把这几个练熟,你就是自己小站的 “运维工程师”。
如果你也遇到过服务器莫名其妙卡顿、排查半天找不到原因的情况,欢迎在评论区说一下,我帮你一起分析。