oom killer理解和日志分析

当应用因内存不足被oom-killer终止时,分析系统日志至关重要。在《oom-killer理解和日志分析》中,通过查看/var/log/messages,发现系统触发了oom-killer。关键日志显示'node invoked oom-killer',揭示了问题源于node进程。在oom-killer日志的结尾,'Killed process 5430'标识了被杀进程及其内存占用情况。此外,日志还展示了不同Node的内存状态,如DMA、DMA32和Normal的空闲及最小内存,这些信息对于诊断内存问题非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我们环境上接到报警,我们的应用停止运行了。环境上无dump文件保留下来(配置如果发生oom保存dump 文件),当我们查看系统日志

oom-killer查看各个日志含义

/var/log/messages 发现 系统中有文件调用 oom-killer 这个命令。
由于环境上面的日志文件不能发出来这里发出几个比较关键点用于以后直接定位日志出现

Sep 28 23:50:01 VM-0-9-centos kernel: node invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
Sep 28 23:50:01 VM-0-9-centos kernel: node cpuset=/ mems_allowed=0

这里 node invoked oom-killer 根据这个日志可以看出来是node 的创建导致内存不足调用oom-killer


Sep 28 14:50:01 VM-0-9-centos kernel: Out of memory: Kill process 5430 (java) score 800 or sacrifice child
Sep 28 14:50:01 VM-0-9-centos kernel: Killed process 5430