O log do OOM mostra quais processos ele viu em execução quando encontrou a condição de pouca memória e quais os que tentou matar. Veja a tabela que começa com o seguinte cabeçalho:
[ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name
total_vm é a coluna que mostra o total de memória mapeada (RAM + Swap) para o processo - observo que os grandes processos são VirtualBox (x2) e python (pid == 27638).
Eu diria que você sabia sobre o VirtualBox, mas valeria a pena descobrir o que era esse processo python. Poderia ser um roteiro que deu errado? Algo que monitora arquivos adicionados? Algum tipo de scanner de mídia que procura por novos arquivos (por exemplo, um servidor de mídia, como plex, rygel ou similar?), Ou seu gerenciador de backup?
A maneira mais simples de rastrear o uso da memória (mas estritamente on-line / interativo) seria usar top
e ordenar por memória (pressione M - isso é maiúscula M, - ou seja, shift-M). A primeira linha de memória também lhe dirá quanto de RAM física o sistema operacional pensa ter "Mem:", o que é útil se você acha que está perdendo parte da sua memória RAM - devido a problemas de 32 bits.
Você poderia fazer algum tipo de script de monitoramento, embora eu não conheça uma maneira legal de fazê-lo. Para começar, eu tenho:
top -n 1 -b | sed '1,/^$/d' | sort -r -n -k10
Isso despeja a saída superior, corta o cabeçalho até a linha em branco (de 1 a "^ $") e classifica a saída pela décima coluna (para mim, sua porcentagem de memória), em ordem numérica inversa. Executar o despejo regular em um arquivo pode ajudar.