Visualize os argumentos da linha de comando do programa completo nos logs killer da OOM

8

É possível visualizar todos os argumentos da linha de comando do programa em logs do OOM killler? O que eu 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 em particular foi morto pelo killer da OOM.

    
por sergeyz 11.12.2014 / 11:40

2 respostas

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

que parece ser o máximo que você pode fazer com que o kernel seja exibido em erros de falta de memória.

link

Enables a system-wide task dump (excluding kernel threads) to be produced when the kernel performs an OOM-killing and includes such information as pid, uid, tgid, vm size, rss, nr_ptes, swapents, oom_score_adj score, and name. This is helpful to determine why the OOM killer was invoked, to identify the rogue task that caused it, and to determine why the OOM killer chose the task it did to kill.

If this is set to zero, this information is suppressed. On very large systems with thousands of tasks it may not be feasible to dump the memory state information for each one. Such systems should not be forced to incur a performance penalty in OOM conditions when the information may not be desired.

If this is set to non-zero, this information is shown whenever the OOM killer actually kills a memory-hogging task.

    
por 11.12.2014 / 11:57
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 eliminado, você pode usar em cima para registrar a atividade do sistema.
Se oom-killer matar s / th, basta abrir no log para esse tempo, encontrar o processo por PID em / var / log / syslog e pressionar a tecla 'c' para ver a linha de comando do processo.

    
por 11.09.2015 / 15:15