Linux 系统卡顿?这几个命令 90%

为什么服务器会突然变慢?先学会用命令说话

很多新手遇到 Linux 系统卡顿 第一时间想重启,但重启只是治标。
真正能解决问题的是学会用几条命命令快速定位瓶颈。
下面这四条命令,覆盖了 90% 的卡顿场景:CPU、内存、磁盘 I/O 和网络连接。

准备工作:一个 SSH 连接就够了

你需要有一台 Linux 服务器(CentOS 7+ / Ubuntu 18.04+),通过 SSH 登录。
如果你用的云服务器,在控制台直接点「远程连接」也可以。

提醒:下列命令大部分系统自带,无需额外安装;如果提示找不到 iostat,运行 yum install sysstat -y(CentOS)或 apt install sysstat -y(Ubuntu)。

第一步:用 top 看 CPU 和内存谁在吃资源

运行命令:

top

你会看到一个实时刷新的界面。
重点看两行:

  • %Cpu(s) 行:us 是用户程序占用,sy 是系统内核占用,id 是空闲。如果 us 持续超过 70%,说明 CPU 吃紧。
  • 内存行(KiB Mem)total 总量,used 已用,free 空闲。若 free 接近 0 且 used 持续高位,内存不足。

1 可以查看每个 CPU 核心情况。
q 退出。

小技巧:在 top 界面按 Shift + P 按 CPU 使用排序,按 Shift + M 按内存排序,瞬间找出那个“吃”资源的进程。

第二步:用 free -h 看清楚内存真实状态

top 里的内存信息略显粗糙,我们再用 free 确认:

free -h

输出示例:

              total        used        free      shared  buff/cache   available
Mem:           7.6G        5.2G        1.1G        456M        1.3G        1.8G

关键看 available 列,它才是真正可用的内存。
如果 available 小于 10%,说明内存严重不足。
不要只盯着 free,因为 Linux 会把空闲内存用作缓存(buff/cache),当程序需要时再释放。

第三步:用 iostat 检查磁盘是否拖慢系统

磁盘读写慢是 Linux 系统卡顿 的常见元凶,尤其当数据库或日志频繁写入时。
运行:

iostat -x 1 3

关注两个指标:

  • %util:磁盘忙绿百分比,超过 80% 基本等于磁盘是瓶颈。
  • await:平均每次 I/O 等待时间(毫秒),大于 20ms 说明磁盘响应慢。

如果 %util 很高但 await 正常,可能是磁盘队列过深;
如果两者都高,优先考虑换 SSD 或限流日志写入。

第四步:用 ss 查看网络连接是否异常

网络连接过多也会让系统卡顿,比如被攻击或程序没释放连接。
运行:

ss -tuln

这个命令列出所有监听端口和当前连接。
想看详细状态和每个连接的等待时间,用:

ss -ant | head -20

如果发现大量 TIME_WAITCLOSE_WAIT 状态连接(超过几千个),说明应用层没正确关闭 socket,需要优化代码或者调整内核参数。

避坑指南:新手最容易犯的四个错

  1. 只看负载不看 CPUuptime 里的 load average 大于 CPU 核心数不一定真卡,还要结合 top%wa(等待 I/O)是否过高。
  2. 误杀 systemd 进程:用 kill -9 结束可疑进程前,先用 ps -ef | grep 进程名 确认不是关键服务。
  3. 忽略内核日志:输入 dmesg | tail -20,如果看到 Out of memorykilled process,说明内存耗尽触发 OOM Killer,这时候必须加内存或优化程序。
  4. 在高峰时段跑压测:不要在业务高峰期跑 ddstress 测试,否则可能直接导致服务宕机。

高频问题解答

Q:运行 iostat 提示 command not found?
A:安装 sysstat 包。CentOS 用 yum install sysstat -y,Ubuntu 用 apt install sysstat -y

Q:top 显示 CPU 空闲 90%,但系统还是卡?
A:卡顿不一定是 CPU 问题。检查磁盘 I/O(iostat %util)或者内存是否频繁 swap(输入 vmstat 1siso 列持续大于0)。

Q:哪个命令对新手最友好?
A:先运行 top 看全局,再根据问题点用其他命令深入。如果不想记命令,很多面板(宝塔、1Panel)也集成了资源监控,点开就能看。

效果验证:如何确认系统恢复?

执行完上述排查步骤并做出相应优化(如杀掉吃资源的进程、清理缓存、调整连接数)后,再次运行 top 观察 id 是否回升到 80% 以上,运行 free -h 看 available 是否恢复到总量 20% 以上。
打开网页或业务接口,响应时间明显缩短就说明问题解决了。

记住:排查 Linux 系统卡顿 不要凭感觉,让这四条命令帮你科学定位。 如果你在处理过程中遇到异常,优先重看本文避坑部分,并且保存每个步骤的输出截图,方便后续对比。

分享到:
上一篇
宝塔面板安装 Docker,一键部署所有应用
下一篇
用 AI 写 Shell 脚本,效率提升 10
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意