Kill-The-Largest-Process

A veces, tengo muchas pestañas abiertas en mi navegador, por lo que mi sistema no responde durante varios minutos. No puedo mover el cursor del mouse, o matar un proceso o cerrar las pestañas abiertas. En esos momentos, no tuve más remedio que reiniciar a la fuerza el sistema. Por supuesto, utilizo las extensiones OneTab y The Great Suspender, pero tampoco ayudaron mucho. A menudo me quedé sin memoria. Aquí es donde Early OOM ayuda. Para aquellos que se preguntan como matar el proceso problemático en un sistema que no responde cuando no tienes absolutamente ninguna otra opción. Early OOM comprueba la cantidad de memoria disponible y Swap libre 10 veces por segundo. Si ambos están por debajo del 10%, matará al proceso más grande (que más memoria ocupa).

Antes de ir más allá, permítanme dar una breve explicación de OOM Killer, también conocido como Out Of Memory killer. OOM killer es un proceso que el Kernel utiliza cuando el sistema tiene una memoria crítica baja. La principal tarea de OOM killer es continuar matando procesos hasta que se libere suficiente memoria para el buen funcionamiento del resto del proceso que Kernel está intentando ejecutar. OOM killer elegirá los mejores procesos que son menos importantes para el sistema y liberará la memoria máxima y los matará. Podemos ver el oom_score de cada proceso en el directorio /proc bajo la sección pid.

Ejemplo:

$ cat /proc/10299/oom_score
1

Cuanto mayor sea el valor de oom_score de cualquier proceso, mayor será su probabilidad de ser matado por OOM Killer cuando el sistema se esté quedando sin memoria.

El desarrollador de Early OOM afirma que tiene una gran ventaja sobre OOM en el Kernel. Como dije anteriormente, el killer de Linux mata el proceso con el puntaje más alto, por lo que el navegador Chrome siempre será la primera víctima del killer. Para evitar esto, Early OOM usa /proc / */status en lugar de echo f> / proc / sysrq-trigger. También afirma que desencadenar el killer de forma manual puede no funcionar en absoluto en el último Kernel de Linux.

Instalando Early OOM

Early OOM está disponible en AUR, por lo que puedes instalarlo utilizando cualquier programa de ayuda de AUR en Arch Linux y sus derivados.

Con Pacaur:

pacaur -S earlyoom

Con Packer:

packer -S earlyoom

Con Yaourt:

yaourt -S earlyoom

Habilitar y comenzar el daemon Early OOM:

sudo systemctl enable earlyoom
sudo systemctl start earlyoom

En otras distribuciones de Linux, compila e instálalo manualmente como se muestra a continuación.

git clone https://github.com/rfjakob/earlyoom.git
cd earlyoom
make
sudo make install

Ejecuta el siguiente comando para iniciar Early OOM:

earlyoom

Si compilaste desde las fuentes, ejecuta el siguiente comando para iniciar Early OOM:

./earlyoom

La salida sería:

earlyoom 0.12
mem total: 3863 MiB, min: 386 MiB (10 %)
swap total: 2047 MiB, min: 204 MiB (10 %)
mem avail: 1770 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1773 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1772 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1773 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1772 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1773 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1771 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1773 MiB (45 %), swap free: 2047 MiB (99 %)
mem avail: 1784 MiB (46 %), swap free: 2047 MiB (99 %)
[...]

Como puedes ver en la salida anterior, Early OOM mostrará cuánta memoria y swap tienes, cuál es el mínimo, cuánta memoria hay disponible y cuánto swap está libre. Recuerda que seguirá funcionando hasta que se detenga manualmente presionando CTRL + C.

Si la memoria y el intercambio alcanzan menos del 10%, Early OOM matará automáticamente los procesos más grandes hasta que el sistema tenga suficiente memoria para funcionar sin problemas. También puedes configurar el valor de porcentaje mínimo según tu requisito.

Para establecer un mínimo de memoria disponible en PORCENTAJE del total, ejecuta:

earlyoom -m <porcentaje aquí>

To set available swap minimum to PERCENT of total, run:

Para establecer el mínimo de intercambio disponible POR CIENTO del total, ejecuta:

earlyoom -s <porcentaje aquí>

 

Para más detalles, usa página de ayuda:

$ earlyoom -h
earlyoom 0.12
Usage: earlyoom [OPTION]...

 -m PERCENT set available memory minimum to PERCENT of total (default 10 %)
 -s PERCENT set free swap minimum to PERCENT of total (default 10 %)
 -M SIZE set available memory minimum to SIZE KiB
 -S SIZE set free swap minimum to SIZE KiB
 -k use kernel oom killer instead of own user-space implementation
 -i user-space oom killer should ignore positive oom_score_adj values
 -d enable debugging messages
 -v print version information and exit
 -r INTERVAL memory report interval in seconds (default 1), set to 0 to
 disable completely
 -p set niceness of earlyoom to -20 and oom_score_adj to -1000
 -h this help text

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 467 invitados y ningún miembro en línea