讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么查看内核OOM杀掉进程的历史日志

千枫吖_5267

千枫吖_5267

发布时间:2026-09-28 16:18:59

|

868人浏览过

|

来源于php中文网

原创

dmesg -T | grep -i "killed process"是诊断OOM Killer的首选方法,因其直接读取内核ring buffer中唯一一次的关键记录,-T提供可读时间戳,且需root权限才能在RHEL 8+/CentOS 8+等系统查看完整日志。

linux怎么查看内核oom杀掉进程的历史日志

直接看 dmesg -T | grep -i "killed process",有输出基本就是 OOM Killer 干的;没输出不等于没发生,可能是日志被刷掉、权限受限,或根本不是 OOM 导致的“Killed”。

为什么优先用 dmesg -T 而不是 journalctl -k

dmesg 读的是内核 ring buffer,OOM Killer 触发时只写一次关键记录,这是唯一原样保留的原始证据。journalctl -k 虽然内容来源相同,但依赖 journald 持久化机制——如果服务未启用持久存储、日志轮转过快,或系统刚重启,journalctl -k 可能为空或不全。-T 参数必须加,否则时间戳是内核启动后的相对秒数(如 [ 12345.678901]),没法和业务告警时间对齐。

  • 必须用 root 权限:RHEL 8+/CentOS 8+ 等系统默认开启 kernel.dmesg_restrict=1,非 root 用户看不到完整内容
  • ring buffer 是环形的,容量固定(通常几 MB),旧日志会被新日志覆盖;OOM 发生在几天前的话,dmesg 很可能已丢失
  • journalctl -k 更适合结合时间范围查历史(比如 --since "2 hours ago"),但不能替代 dmesg 的“第一手现场感”

dmesg 输出里哪些字段真正有用

典型行:[Wed Sep 25 14:32:11 2026] Killed process 12345 (java) total-vm:12345678kB, anon-rss:8765432kB, file-rss:12345kB。关键不是 total-vm(虚拟内存,JVM 类应用常虚高),而是 anon-rss:它代表进程实际占用的物理内存页(不含 page cache 和文件映射),单位 kB。如果这个值接近机器总内存(比如 64G 机器上出现 anon-rss:62000000),基本坐实它是压垮系统的最后一根稻草。

CMIC Skill Scanner (Linux x64)
CMIC Skill Scanner (Linux x64)

使用 auto、native 或 external 引擎审计待安装的 skill 包或归档,并可选启用 LLM 语义分析。

下载
  • score 或 oom_score 字段(如 Kill process 12345 (java) score 894)反映内核打分结果,分数越高越容易被选中,但不是单纯看内存大小——oom_score_adj 值、是否 root、运行时长都会影响
  • 若看到 Memory cgroup out of memory,说明是容器或 systemd service 的内存限额触发,不是整机内存耗尽;得去对应 cgroup 路径查 memory.usage_in_bytes 和 memory.limit_in_bytes
  • 单靠这一行不够,OOM 是个过程,前后几秒的日志才揭示原因:重点扫 page allocation failure、low memory、free:(显示各 zone 剩余页数)、slab_reclaimable 等提示

查不到 "killed process" 时该试什么

别急着下结论说“没发生 OOM”。先检查三件事:

  • 运行 sudo sysctl kernel.dmesg_restrict,若返回 1,说明权限被锁死;临时放开:sudo sysctl kernel.dmesg_restrict=0
  • 查传统日志文件:sudo grep -i "out of memory\|killed process" /var/log/messages(RHEL/CentOS)或 /var/log/syslog(Debian/Ubuntu);部分发行版会由 rsyslog 把 dmesg 内容转存到这些文件
  • 用 journalctl -k --grep="oom\|out.of.memory" --since="24 hours ago" 扩大时间范围再试;注意 --grep 是 journalctl 3.5+ 才支持的参数,老版本得用管道:journalctl -k --since "24 hours ago" | grep -i "oom"

确认被杀进程后,怎么快速定位“谁才是真凶”

被杀进程往往只是替罪羊。比如一个 python3 进程因 anon-rss:3.2G 被杀,但它可能只是加载了某个大模型权重,而真正持续申请内存的是上游的 nginx worker 或数据库连接池。这时候要:

  • 立刻执行 ps -eo pid,comm,%mem,vsz,rss --sort=-%mem | head -10,看当前内存大户是谁;注意 %mem 是按物理内存占比算的,比 RSS 绝对值更可比
  • 查被杀进程当时的 oom_score_adj:cat /proc/12345/oom_score_adj(替换 PID);若为 0 是默认值,若为 1000(Docker 默认)则说明它被刻意“标红”了
  • 用 cat /proc/pressure/memory 查内存压力状态;持续高于 some avg10=10.00 就说明系统长期处于内存高压,不是突发 spike

最易被忽略的一点:OOM 日志本身不会告诉你“为什么那个进程突然吃这么多内存”,它只记录结果。真正的原因藏在应用日志、监控曲线、甚至代码逻辑里——比如一个未限制分页大小的 SQL 查询,或一个没做流式处理的大文件上传。取证必须快,但归因不能只盯内核日志。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3730

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3233

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2313

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5550

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5202

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3093

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2605

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2819

2023.07.25

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 178人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn