systemadmin.es > Utilidades > Invocar el Out Of Memory Killer (oom_kill)

Invocar el Out Of Memory Killer (oom_kill)

En la pasada NoConName, hablando con Jordi Gaya me dijo de la posibilidad de invocar el out of memory killer desde el sysrq que no conocía. Vamos a ver cómo invocarlo y cómo ver cual es el proceso que matará.

Mediante el fichero oom_score dentro del directorio del /proc de cada proceso podemos obtener la puntuación de cada proceso. Deberemos mirar el proceso con la puntuación más alta. Mediante el siguiente comando podemos obtener el listado ordenado:

# for i in $(find /proc -maxdepth 2 -iname oom_score | cut -d '/' -f 3); do     NAME="$(cat /proc/$i/cmdline | awk '{print $1}')";    if [ -z "$NAME" ];    then       NAME=$(cat /proc/$i/status | grep Name | awk '{print $2}');    fi;    echo $(cat /proc/$i/oom_score) $NAME; done | sort -n
(...)
11 /opt/google/chrome/chrome
11 /opt/google/chrome/chrome
11 /opt/google/chrome/chrome
14 /opt/google/chrome/chrome
98 /usr/lib/firefox/firefox
169 /opt/google/chrome/chrome

Por lo tanto, vemos que matará un proceso de chrome, lo invocamos con la letra f. Podemos hacerlo tanto mediante el /proc/sysrq-trigger:

# echo f > /proc/sysrq-trigger

Como igual que con la combinación REISUB, mediante Alt y SysRq. En el dmesg veremos que se ha ejecutado y el proceso que ha matado:

# dmesg
(...)
[3020978.084222] Out of memory: Kill process 24103 (chrome) score 168 or sacrifice child
[3020978.084231] Killed process 24103 (chrome) total-vm:1770788kB, anon-rss:596848kB, file-rss:21464kB

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>