当Linux耗尽内存(OOM)时,OOM杀手会根据一些启发式方法选择要杀死的进程(这是一个有趣的阅读:http://lwn.net/Articles/317814/)。

如何以编程方式确定哪些进程最近被OOM杀手杀死了?


试试这个吧:

grep -i 'killed process' /var/log/messages

试试这个吧:

grep "Killed process" /var/log/syslog

试试这个吧,这样你就不需要担心日志在哪里了:

dmesg -T | egrep -i 'killed process'

- t,——ctime -打印人类可读的时间戳。


现在dstat提供了一种特性,可以在正在运行的系统中发现哪个进程可能被oom机制杀死

dstat --top-oom
 --out-of-memory---
  kill score
 java           77
 java           77
 java           77

根据手册页

  --top-oom
          show process that will be killed by OOM the first