Linux中如何通过Dmesg -T追踪物理内存溢出触发的OOM-Killer进程终止详情?

2026-05-08 01:460阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计694个文字,预计阅读时间需要3分钟。

Linux中如何通过Dmesg -T追踪物理内存溢出触发的OOM-Killer进程终止详情?

使用 `mesg -T | grep -i killed process | out of memory` 命令可以直接捕获 OOM Killer 杀死进程的核心记录。但要真正理解谁被杀、为什么杀、系统当时多紧张,需要结合时间、上下文和内存状态一起分析。

快速定位杀进程的原始日志

OOM 事件发生后,内核只在 ring buffer 写一次关键信息,不持久化。必须立刻执行:

  • sudo dmesg -T | grep -i "killed process\|out of memory" —— 最简有效命令,-T 输出本地可读时间(如 [Wed Apr 10 09:22:17 2026]),避免相对秒数难定位
  • 典型输出含:PID、进程名(如 python3)、total-vm(虚拟内存)、anon-rss(真实物理内存占用,最关键)
  • 若无输出,不是没发生,而是缓冲区已被刷掉,或普通用户权限受限(RHEL/CentOS 8+ 默认 kernel.dmesg_restrict=1)

查上下文:光看“被杀”不够,要看“为啥杀”

OOM 是结果,不是起点。

阅读全文
标签:Linux

本文共计694个文字,预计阅读时间需要3分钟。

Linux中如何通过Dmesg -T追踪物理内存溢出触发的OOM-Killer进程终止详情?

使用 `mesg -T | grep -i killed process | out of memory` 命令可以直接捕获 OOM Killer 杀死进程的核心记录。但要真正理解谁被杀、为什么杀、系统当时多紧张,需要结合时间、上下文和内存状态一起分析。

快速定位杀进程的原始日志

OOM 事件发生后,内核只在 ring buffer 写一次关键信息,不持久化。必须立刻执行:

  • sudo dmesg -T | grep -i "killed process\|out of memory" —— 最简有效命令,-T 输出本地可读时间(如 [Wed Apr 10 09:22:17 2026]),避免相对秒数难定位
  • 典型输出含:PID、进程名(如 python3)、total-vm(虚拟内存)、anon-rss(真实物理内存占用,最关键)
  • 若无输出,不是没发生,而是缓冲区已被刷掉,或普通用户权限受限(RHEL/CentOS 8+ 默认 kernel.dmesg_restrict=1)

查上下文:光看“被杀”不够,要看“为啥杀”

OOM 是结果,不是起点。

阅读全文
标签:Linux