news 2026/3/11 22:48:41

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/3/9 18:09:51

肿瘤微环境代谢及信号调控介导的T淋巴细胞功能抑制:机制与治疗展望

一、肿瘤微环境对T淋巴细胞的免疫抑制机制及治疗策略研究综述 肿瘤微环境是阻碍T淋巴细胞浸润并削弱其抗肿瘤功能的关键屏障。该环境中存在的代谢异常及可溶性因子可显著抑制T细胞活性。2022年8月&#xff0c;Navin Kumar Verma及其团队于《eBioMedicine》发表综述《Obstacles…

作者头像 李华
网站建设 2026/3/9 18:58:11

为什么 USB 3.0 甚至可能比 3.2 更容易出问题?

是的,非常需要。哪怕是 USB 3.0(现在技术规范上常被称为 USB 3.2 Gen 1),也完全存在你所描述的“冷启动”驱动加载失败或超时的问题。 针对你的提问,答案是肯定的:USB 3.0 和 USB 3.2 在电源管理导致“驱动加载”延迟的机制上是一脉相承的。 以下是深度解析,为什么 US…

作者头像 李华
网站建设 2026/3/9 19:42:41

从文本到语音:Fish Speech 1.5在内容创作中的应用案例

从文本到语音&#xff1a;Fish Speech 1.5在内容创作中的应用案例 1. 为什么内容创作者需要关注Fish Speech 1.5&#xff1f; 你是否遇到过这些场景&#xff1a; 为短视频配旁白&#xff0c;反复录音十几遍仍不满意&#xff1b;制作双语课程&#xff0c;找配音员成本高、周期…

作者头像 李华
网站建设 2026/3/6 17:20:53

腾讯混元模型部署避坑:vllm启动常见问题解决方案

腾讯混元模型部署避坑&#xff1a;vllm启动常见问题解决方案 本文聚焦Hunyuan-MT-7B镜像在vLLMOpen WebUI组合下的实际部署过程&#xff0c;不讲原理、不堆参数&#xff0c;只说你启动时真正会卡住的5个关键问题和对应解法 1. 启动失败第一关&#xff1a;显存报错“CUDA out of…

作者头像 李华
网站建设 2026/3/8 11:55:55

DeepSeek-OCR-2小白入门:3步完成文档结构化提取

DeepSeek-OCR-2小白入门&#xff1a;3步完成文档结构化提取 你是不是也经历过这样的尴尬&#xff1f;手头有一叠纸质合同、扫描版标书、PDF版财报&#xff0c;想把里面的关键信息——比如标题层级、段落逻辑、表格数据——原样搬到Word或Notion里&#xff0c;结果用传统OCR一扫…

作者头像 李华