Visualizza gli argomenti della riga di comando del programma completo nei registri killer OOM


8

È possibile visualizzare gli argomenti della riga di comando del programma completo nei registri dell'assassino OOM? Quello che vedo ora in / 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

Ho un sacco di processi beam.smp sulla mia macchina e non è molto conveniente scoprire quale particolare processo è stato ucciso dal killer OOM.

Risposte:


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

che sembra circa il massimo che puoi far visualizzare al kernel su errori di memoria insufficiente.

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

Abilita un dump di attività a livello di sistema (esclusi i thread del kernel) da produrre quando il kernel esegue un'omicidio OOM e include informazioni come pid, uid, tgid, dimensione vm, rss, nr_ptes, swapents, punteggio oom_score_adj e nome. Questo è utile per determinare perché il killer OOM è stato invocato, per identificare l'attività canaglia che lo ha causato e per determinare perché il killer OOM ha scelto il compito che ha fatto per uccidere.

Se impostato su zero, questa informazione viene soppressa. Su sistemi molto grandi con migliaia di attività potrebbe non essere possibile scaricare le informazioni sullo stato della memoria per ognuna. Tali sistemi non dovrebbero essere costretti a incorrere in una penalità di prestazione in condizioni OOM quando l'informazione potrebbe non essere desiderata.

Se impostato su un valore diverso da zero, queste informazioni vengono visualizzate ogni volta che il killer OOM uccide effettivamente un'attività di hogging della memoria.


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

non mi ha aiutato molto - non ci sono ancora parametri della riga di comando nel registro.
per visualizzare in modo retrospettivo la riga di comando del processo interrotto, è possibile utilizzare in cima per registrare l'attività del sistema.
se oom-killer uccide s / th, basta aprire in cima al registro per quel tempo, trovare il processo tramite PID da / var / log / syslog e premere il tasto 'c' per visualizzare la riga di comando del processo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.