Descobrindo qual processo foi morto pelo assassino Linux OOM

Quando o Linux fica sem memory (OOM), o OOM killer escolhe um processo para matar baseado em algumas heurísticas (é uma leitura interessante: http://lwn.net/Articles/317814/ ).

Como alguém pode determinar programaticamente quais processos foram mortos recentemente pelo assassino da OOM?

Tente isso:

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

Tente isso para que você não precise se preocupar sobre onde seus logs estão

 dmesg | egrep -i 'killed process' 

Agora o dstat fornece o recurso para descobrir em seu sistema em execução qual processo é candidato a ser morto pelo mecanismo do oom

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

e como na página man

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

Tente isso:

 grep "Killed process" /var/log/syslog