Cuando abro muchas pestañas en mi navegador, mi sistema no responde durante varios minutos. No podía mover el cursor del mouse, eliminar un proceso o cerrar las pestañas abiertas. En ese momento, no tuve más remedio que reiniciar el sistema a la fuerza. Por supuesto, uso OneTab y El Gran Tirante extensiones, pero tampoco ayudaron mucho. A menudo me quedé sin memoria. Mientras buscaba una solución para solucionar este problema, me encontré con Early OOM . Para aquellos que se preguntan, matará el proceso más grande en un sistema que no responde cuando no tiene absolutamente ninguna otra opción. Early OOM comprueba la cantidad de memoria disponible y el intercambio libre 10 veces por segundo. Si ambos están por debajo del 10%, matará el proceso más grande.
¿Por qué Early OOM? ¿Por qué no integrado OOM killer?
Antes de continuar, déjame darte una breve explicación del asesino OOM, también conocido como O fuera O f M asesino de emory OOM killer es un proceso que utiliza el Kernel cuando el sistema tiene poca memoria. La tarea principal de OOM killer es continuar matando procesos hasta que se libere suficiente memoria para el buen funcionamiento del resto del proceso que el Kernel está intentando ejecutar. OOM killer elegirá los mejores procesos que son menos importantes para el sistema y liberará el máximo de memoria y los matará. Podemos ver el oom_score de cada proceso en /proc directorio bajo pid sección.
Ejemplo:
$ gato /proc/10299/oom_score 1
Cuanto mayor sea el valor de oom_score de cualquier proceso, mayor será la probabilidad de que el OOM Killer lo elimine cuando el sistema se esté quedando sin memoria.
El desarrollador de Early OOM afirma que tiene una gran ventaja sobre el asesino OOM en el kernel. Como dije anteriormente, el asesino oom de Linux mata el proceso con la puntuación más alta, por lo que el navegador Chrome siempre será la primera víctima del asesino oom. Para evitar esto, Early OOM usa /proc/*/status en lugar de echo f> /proc/sysrq-trigger . También afirma que es posible que la activación manual del oom killer no funcione en absoluto en el kernel de Linux más reciente.
Instalación de OOM temprano
Early OOM está disponible en AUR, por lo que puede instalarlo usando cualquier programa auxiliar de AUR en Arch Linux y sus derivados.
Usando Yay :
$ yay -S temprano en la habitación
Habilite e inicie el demonio Early OOM:
$ sudo systemctl habilitar earlyoom
$ sudo systemctl start earlyoom
En otras distribuciones de Linux, compílelo e instálelo manualmente como se muestra a continuación.
$ git clone https://github.com/rfjakob/earlyoom.git$ cd earlyoom$ make$ sudo make install
Elimine el proceso más grande en un sistema Linux que no responde usando Early OOM
Ejecute el siguiente comando para iniciar Early OOM:
$ temprano en la habitación
Si lo compiló desde la fuente, ejecute el siguiente comando para iniciar Early OOM:
$ ./earlyoom
La salida de muestra sería:
earlyoom 0.12mem total:3863 MiB, min:386 MiB (10 %) swap total:2047 MiB, min:204 MiB (10 %)mem disponible:1770 MiB (45 %), swap free:2047 MiB (99 % de disponibilidad de memoria:1773 MiB (45 %), libre de intercambio:2047 MiB (99 %), disponibilidad de memoria:1772 MiB (45 %), libre de intercambio:2047 MiB (99 %), disponibilidad de memoria:1773 MiB (45 %), libre de intercambio:2047 MiB (99 %) disponibilidad de memoria:1772 MiB (45 %), libre de intercambio:2047 MiB (99 %) disponibilidad de memoria:1773 MiB (45 %), libre de intercambio:2047 MiB (99 %) disponibilidad de memoria:1771 MiB (45 %), libre de intercambio:2047 MiB (99 %), disponibilidad de memoria:1773 MiB (45 %), libre de intercambio:2047 MiB (99 %), disponibilidad de memoria:1784 MiB (46 %), libre de intercambio:2047 MiB (99 %)[...]
Como puede ver en el resultado anterior, Early OOM mostrará cuánta memoria e intercambio tiene, cuál es el mínimo, cuánta memoria está disponible y cuánto intercambio está libre. Recuerda que seguirá funcionando hasta que lo detengas manualmente presionando CTRL+C.
Si tanto la memoria como el intercambio alcanzan menos del 10 %, Early OOM eliminará automáticamente los procesos más grandes hasta que el sistema tenga suficiente memoria para funcionar sin problemas. También puede configurar el valor de porcentaje mínimo según sus requisitos.
Para establecer el mínimo de memoria disponible en un PERCENT del total, ejecuta:
$ Earlyoom -m
Para establecer el mínimo de intercambio disponible en un PERCENT del total, ejecuta:
$ Earlyoom -s
Para obtener más detalles, consulte la sección de ayuda.
$ Earlyoom -h earlyoom 0.12Usage:earlyoom [OPCIÓN]... -m PERCENT establece el mínimo de memoria disponible en PERCENT of total (predeterminado 10 %) -s PERCENT establece el mínimo de intercambio libre en PERCENT of total (predeterminado 10 %) -M SIZE establece el mínimo de memoria disponible a SIZE KiB -S SIZE establece el mínimo de intercambio gratuito en SIZE KiB -k usa kernel oom killer en lugar de la implementación propia del espacio de usuario -i user-space oom killer debe ignorar los valores positivos de oom_score_adj -d habilitar mensajes de depuración -v imprimir información de versión y salir -r INTERVALO intervalo de informe de memoria en segundos (predeterminado 1), establecido en 0 para deshabilitar completamenteAhora, no necesita preocuparse por los procesos de mayor consumo de memoria.