news 2026/4/18 5:13:07

Linux 服务器故障急救指南:CPU、内存、磁盘满员怎么办?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 服务器故障急救指南:CPU、内存、磁盘满员怎么办?

做测试的兄弟们肯定都遇到过:刚才还好好的接口,突然超时报错;测试环境突然像死机一样,命令都敲不动。这时候别慌,不用马上喊运维,用这套“急救”命令清单,3分钟快速定位是代码Bug还是资源耗尽。
作为测试工程师,掌握这套排查逻辑,不仅能提交更有说服力的Bug报告,关键时刻还能帮你“救火”。


🚨 场景一:系统像死机一样卡顿(CPU 飙升 100%)

症状速写:命令延迟极高,网页打不开,输入完回车半天没反应。

第一步:用top找出“捣乱分子”

直接输入top,你会看到如下动态视图(简化示意):

top - 11:30:00 up 10 days, 1:20, 3 users, load average: 2.45, 2.10, 1.95 Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie %Cpu(s): 85.0 us, 10.0 sy, 0.0 ni, 5.0 id, 0.0 wa, 0.0 hi, 0.0 si MiB Mem: 8000.0 total, 1000.0 free, 6000.0 used, 1000.0 buff/cache PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 400000 350000 5000 R 80.5 4.3 0:15.30 java <- 罪魁祸首 5678 deploy 20 0 120000 50000 2000 S 5.0 0.6 0:02.10 nginx

🔍 如何看:

  1. 看第一行load average:如果数字超过CPU核心数,说明负载很重。
  2. %Cpu(s)
    • us(用户空间)高 ➜程序死循环或计算密集
    • wa(等待I/O)高 ➜硬盘读写瓶颈,CPU在干等。
  3. 操作:按键盘P(大写),可以让进程按 CPU 使用率排序。记下第一位的PID(比如上面的 1234)。

第二步:查户口,它是谁?

拿到 PID,还不知道它是哪个服务?用ps确认:

# -ef 显示所有进程,| grep 管道过滤ps-ef|grep1234

输出示例:

root 1234 1 99 11:25 pts/0 00:03:15 java -jar /opt/app/backend.jar

这就知道了,是/opt/app/backend.jar这个 Java 服务在抽风。

💾 场景二:服务被莫名杀掉,越来越慢(内存溢出 OOM)

症状速写:程序运行一段时间后突然消失;或者系统极慢,甚至鼠标都动不了。

第一步:看内存余额free

不要只凭感觉,直接看数据:

free-h

输出示例:

total used free shared buff/cache available Mem: 7.7Gi 6.5Gi 200Mi 1.0Mi 1.0Gi 500Mi <- 注意这列 Swap: 2.0Gi 1.5Gi 500Mi

🔍 如何看:

  • available这是真正能用的内存。如果接近 0,系统极度危险。
  • Swap如果used变大(比如这里用了 1.5G),说明物理内存不够用,被迫把数据搬到了硬盘。这会导致性能呈指数级下降。

第二步:揪出内存大户

还是用top,这次按M(大写)按内存排序。
或者使用这条命令直接找出 Top 5 的贪吃蛇:

ps-aux --sort=-%mem|head-n5

可视化排查思路:

系统变慢

内存可用吗?

查看进程排序

发现某进程占用异常高

重启服务/限制堆内存

检查Swap是否占用

物理内存泄漏/不够用


💽 场景三:报错“No space left on device”(磁盘满了)

症状速写:无法写入日志,程序报错退出,但用df查看好像还有空间(可能是 Inode 满了)。

第一步:宏观检查df

df-h

输出示例:

Filesystem Size Used Avail Use% Mounted on /dev/sda1 40G 38G 2G 95% / <- 危险!根目录满了 /dev/sdb1 200G 50G 150G 25% /data

第二步:精确打击du

知道/目录满了,但不知道是哪个子目录搞的鬼?一层层剥洋葱:

# 查看根目录下一级文件夹大小,并排序du-h --max-depth=1/|sort-hr

输出示例:

3.5G /var/log <- 罪魁祸首 2.0G /usr 1.5G /opt ...

发现/var/log占用最大,进去再执行du -h --max-depth=1 /var/log,就能定位到具体的日志文件。

第三步:查隐形杀手 Inode

如果df -h显示Use%正常,但依然报错磁盘满,请检查 Inode(文件节点数):

df-i

输出示例:

Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 262144 262100 44 100% / <- IUse% 100%,说明小文件太多撑爆了

📝 总结:急救速查卡

建议收藏这张表,贴在工位旁,故障发生时照着敲:

故障现象核心排查命令关键指标解决思路
CPU 飙升top(按P)%us> 80% 或load找到对应PID,排查死循环代码
内存溢出free -havailable接近 0找内存占用最高的进程,检查配置
Swap 飙升vmstat 2si/so频繁变动说明物理内存不足,需加内存或优化
磁盘满df -h/du -shUse%= 100%清理日志文件或临时文件
Inode 满df -iIUse%= 100%清理海量小文件(如session碎片)

写在最后:
学会这些命令,我们测试就不再是黑盒测试的“点点点”机器,而是具备了白盒排查能力的工程师。下次环境再挂,先把这串命令跑一遍,截图甩给开发,绝对是Bug定级的最强证据!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 14:29:42

Hadoop MapReduce 计算框架详解

一、MapReduce框架概述1、MapReduce概述关于MapReduce的简单介绍可以参考官方文档的说明&#xff1a;Hadoop MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large cluste…

作者头像 李华
网站建设 2026/4/6 14:44:44

好写作AI:当推荐算法成为你的“学术红娘”,精准配对每一段灵感

如果你也曾被写作助手推荐过&#xff1a;研究量子物理时收到“唐诗赏析模板”&#xff0c;写实证论文时被推送“抒情散文技巧”——别慌&#xff0c;这只是算法在“乱点鸳鸯谱”。而现在&#xff0c;好写作AI的个性化推荐&#xff0c;正在上演“精准相亲”大戏。深夜的文科院系…

作者头像 李华
网站建设 2026/3/27 7:07:19

UDS物联网网关是什么?有什么功能?

一、UDS车载物联网网关概述UDS&#xff08;Unified Diagnostic Services&#xff0c;统一诊断服务&#xff09;车载物联网网关是一种基于汽车行业标准协议UDS的车载智能通信设备。它作为车辆内部网络与外部物联网平台之间的“智能翻译官”&#xff0c;专门用于连接、管理和监控…

作者头像 李华
网站建设 2026/3/17 4:59:44

摆脱论文困扰! 降AI率平台 千笔 VS 知文AI 面向自考学生

在AI技术迅猛发展的今天&#xff0c;越来越多的学生开始借助AI工具辅助论文写作&#xff0c;以提高效率、优化内容。然而&#xff0c;随着学术审查标准的不断提升&#xff0c;AI生成内容的痕迹越来越容易被查重系统识别&#xff0c;导致论文面临“AI率超标”的风险。许多学生在…

作者头像 李华
网站建设 2026/4/17 13:43:14

服务监控与告警体系搭建

服务监控与告警体系搭建一、简述1. prometheus2. grafana3. Alertmanager4. Exporters二、快速部署三、常用Exporters1. node-exporter2. MySQL Exporter3. Elasticsearch Exporter4. MongoDB Exporter5. RocketMQ Exporter6. Redis Exporter7. MinIO8. Milvus四、自定义Export…

作者头像 李华