news 2026/6/15 18:35:30

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/6/15 11:49:44

写论文省心了!千笔·专业论文写作工具,全网顶尖的AI论文平台

你是否曾为论文选题发愁&#xff0c;反复修改却总对结果不满意&#xff1f;是否在深夜面对空白文档无从下笔&#xff0c;又担心查重率太高影响毕业&#xff1f;论文写作的每一步都充满挑战&#xff0c;从文献检索到格式排版&#xff0c;每一个细节都可能成为“卡壳”的关键。而…

作者头像 李华
网站建设 2026/5/22 12:31:56

网络安全行业10大副业汇总,总有一个适合你

网络安全行业10大副业汇总&#xff0c;总有一个适合你 网络安全行业这10大副业汇总 总有一个适合你 引言 在当今的网络安全行业中&#xff0c;除了全职工作外&#xff0c;许多师傅还通过副业来增加收入、不断拓展自身技能&#xff0c;并积累更多实际操作经验&#xff0c;为…

作者头像 李华
网站建设 2026/6/15 11:50:27

解决Docker启动后自动生成docker0虚拟网卡

解决Docker启动后自动生成docker0虚拟网卡&#xff08;172.17.0.1&#xff09;及启动失败问题 一、问题描述 Linux服务器中&#xff0c;Docker服务启动后会自动生成docker0虚拟网卡&#xff0c;其默认IP为172.17.0.1&#xff0c;多次执行删除命令后&#xff0c;重启Docker服务仍…

作者头像 李华
网站建设 2026/6/10 22:24:26

TranslateGemma-12B-IT实测:中英互译效果惊艳展示

TranslateGemma-12B-IT实测&#xff1a;中英互译效果惊艳展示 1. 引言&#xff1a;当翻译遇上大模型 想象一下&#xff0c;你手头有一份长达50页的英文技术文档&#xff0c;需要在明天早上9点前翻译成中文。传统方法要么是逐句粘贴到在线翻译工具&#xff0c;忍受格式错乱和术…

作者头像 李华
网站建设 2026/6/15 12:55:32

程序员是一个需要不断学习的职业。

程序员是一个需要不断学习的职业。幸运的是&#xff0c;在这个互联网时代&#xff0c;知识就在那里&#xff0c;等着我们去获取。 作为一个“收藏从未停止&#xff0c;学习从未开始”的博主&#xff0c;秉承着好东西不能独享的态度&#xff0c;把收藏的学习网站整理分享出来&a…

作者头像 李华
网站建设 2026/6/15 11:49:00

基于协同过滤的电商 商品推荐系统的设计与实现flask scrapy爬虫可视化

目录协同过滤电商推荐系统设计要点Flask后端与可视化实现关键技术栈示例项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作协同过滤电商推荐系统设计要点 数据采集层 使用Scrapy框架构建分布式爬虫&#xff…

作者头像 李华