0

0

Linux 系统资源突然耗尽的预警信号

冰川箭仙

冰川箭仙

发布时间:2026-01-29 16:54:33

|

152人浏览过

|

来源于php中文网

原创

available 接近 0 就该警觉——它才是真实可用内存,低于总内存10%(如8G机器长期≤800M)表明内核正频繁交换,响应延迟明显;dmesg中“Killed process”即OOM已发生,需查oom_score_adj和RSS定位真凶。

linux 系统资源突然耗尽的预警信号

free -h 显示 available 接近 0 就该警觉了

Linux 的 free -h 输出中,available 列才是你真正能用的内存——它已扣除内核预留、不可回收缓存等。很多人盯着 free 列看,结果发现“明明还有 200M free,怎么就 OOM 了?”,这就是典型误判。

available 持续低于总内存的 10%(比如 8G 机器长期 vmstat 1 5 中的 so(swap out)值若稳定 > 0,说明内核已在拼命把内存页写入磁盘,响应延迟会肉眼可感。

  • 别等 Out of memory: Kill process 日志出现才行动——那已是最后防线
  • buff/cache 高不等于问题,但若 available 同步走低,说明缓存正在“挤占”可用空间
  • 云服务器尤其要注意:某些厂商监控只报 used%,而忽略 available,容易漏掉真实压力

dmesg 看到 “Killed process” 就是 OOM 已发生

一旦进程被内核强制终止,dmesg | grep -i "out of memory" 必定有输出,格式类似:
Out of memory: Kill process 12345 (python) score 892 or sacrifice child
这里的 score 是内核打的“死亡分数”,越高越可能被杀;python 是进程名,12345 是 PID。

这不是警告,是事故回溯证据。重点不是“谁被杀了”,而是“为什么它得分这么高”——通常因为 RSS(实际物理内存占用)过大,或 /proc//oom_score_adj 被手动调高过。

  • 别直接 kill -9 日志里的进程——它大概率只是替罪羊,真凶可能是其子进程或上游服务
  • 查完日志立刻执行 ps aux --sort=-%mem | head -5,对比当前活进程和日志里死掉的,看是否同一类应用反复中招
  • 如果 systemdsshd 或数据库主进程出现在日志里,说明系统已濒临瘫痪,需立即人工介入

df -i 显示 IUse% = 100% 时,磁盘“满”得无声无息

磁盘空间没满(df -h 显示 Use% touch 报错 No space left on device?十有八九是 inode 耗尽了。

CodeBuddy
CodeBuddy

腾讯云AI代码助手

下载

每个文件、目录、软链接都占一个 inode,小文件多的场景(如日志轮转、Git 仓库、容器镜像层)极易触发。用 df -i 查看 IUse%,到 100% 就彻底锁死。

  • du --inodes -sh /var/log/* 可快速定位哪个目录塞满了小文件
  • 临时解法:清空 /var/log/journaljournalctl --vacuum-size=100M)或删旧日志;长期要配置 logrotate 限制文件数
  • 注意:rm 删除后 df -i 不立刻下降——得等持有该 inode 的进程关闭句柄,常见于未重启的 Java 服务或长期运行的脚本

lsof | grep delete 发现“幽灵占用”最让人后怕

磁盘空间明明 df -h 显示还剩 20G,du -sh / 却只统计出 5G,差额去哪儿了?大概率是“已删除但未释放”的文件——进程还在读写它,内核不敢回收空间。

执行 lsof | grep delete,输出里带 deleted 字样的行就是元凶。第 7 列是字节数,加起来往往就是那“消失的 15G”。

  • 关键字段是 PIDCOMMAND,用 ps -p -o pid,comm,args 确认进程用途
  • 运维最常踩的坑:对 nginx、rsyslog 这类常驻进程,直接 kill -HUP 就能重载并释放已删日志文件句柄,无需重启服务
  • 如果是业务进程(如 Python 脚本),得看代码里是否 open() 后忘了 close(),或用了 os.remove() 却没同步清理 file descriptor

资源耗尽从来不是突然发生的,只是信号藏得深:available 持续走低、so 值爬升、IUse% 拉满、lsof 里躺着 deleted 文件……这些都不是“可能出问题”,而是“已经出问题,只是还没爆炸”。盯住它们,比等告警邮件有用得多。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

502

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

500

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

234

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

341

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3517

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

32

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

52

2026.01.13

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号