Exibir argumentos completos da linha de comando do programa nos logs do OOM killer

8

É possível exibir argumentos completos da linha de comando do programa nos logs do killer do OOM? O que vejo agora em / var / log / syslog é

Memory cgroup out of memory: Kill process 29187 (beam.smp) score 998 or sacrifice child
Killed process 29302 (cpu_sup) total-vm:4300kB, anon-rss:76kB, file-rss:272kB
beam.smp invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
beam.smp cpuset=/ mems_allowed=0-3

Eu tenho muitos processos beam.smp na minha máquina e não é muito conveniente descobrir qual processo específico foi morto pelo OOM killer.

sergeyz
fonte

Respostas:

4
echo 1 > /proc/sys/vm/oom_dump_tasks

que parece o máximo que você pode obter no kernel para exibir erros de falta de memória.

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

Permite que um dump de tarefas em todo o sistema (excluindo threads do kernel) seja produzido quando o kernel executa uma eliminação de OOM e inclui informações como pid, uid, tgid, tamanho da vm, rss, nr_ptes, swapents, pontuação oom_score_adj e nome. Isso é útil para determinar por que o assassino do OOM foi chamado, para identificar a tarefa não autorizada que o causou e para determinar por que o assassino do OOM escolheu a tarefa que executou para matar.

Se estiver definido como zero, essas informações serão suprimidas. Em sistemas muito grandes com milhares de tarefas, pode não ser possível despejar as informações do estado da memória de cada uma. Esses sistemas não devem ser forçados a incorrer em uma penalidade de desempenho em condições OOM quando as informações não forem desejadas.

Se isso estiver definido como diferente de zero, essas informações serão mostradas sempre que o assassino do OOM realmente matar uma tarefa que consome muita memória.

HBruijn
fonte
1
echo 1 > /proc/sys/vm/oom_dump_tasks

não me ajudou muito - ainda não há parâmetros de linha de comando no log.
para visualizar retrospectivamente a linha de comando do processo morto, você pode usar o topo para registrar a atividade do sistema.
se oom-killer matar s / th, basta abrir no topo do log para esse período, encontrar o processo por PID em / var / log / syslog e pressionar a tecla 'c' para visualizar a linha de comando do processo.

atti
fonte