Solución 1:
No, el algoritmo no es tan simple. Puede encontrar más información en:
http://linux-mm.org/OOM_Killer
Si desea realizar un seguimiento del uso de la memoria, le recomiendo ejecutar un comando como:
ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head
Le dará una lista de los procesos que están usando la mayor cantidad de memoria (y probablemente causando la situación OOM). Eliminar el | head
si prefieres revisar todos los procesos.
Si pone esto en su cron, repítalo cada 5 minutos y guárdelo en un archivo. Conserva al menos un par de días, para que puedas comprobar lo que sucedió más tarde.
Para servicios críticos como ssh, recomendaría usar monit para reiniciarlos automáticamente en tal situación. Podría evitar perder el acceso a la máquina si no tiene una consola remota.
La mejor de las suertes,
João Miguel Neves
Solución 2:
Tuve un momento difícil con eso recientemente, porque los procesos que el oom-killer pisotea no son necesariamente los que han salido mal. Mientras intentaba diagnosticar eso, aprendí sobre una de mis herramientas ahora favoritas, arriba.
Esta utilidad es como un top con esteroides. Durante un intervalo de tiempo preestablecido, perfila la información del sistema. A continuación, puede reproducirlo para ver qué está pasando. Resalta los procesos que son 80%+ en azul y 90%+ en rojo. La vista más útil es una tabla de uso de memoria de cuánta memoria se asignó en el último período de tiempo. Ese es el que más me ayudó.
Fantástica herramienta:no puedo decir lo suficiente sobre ella.
encima del monitor de rendimiento