¿Hay alguna manera de obtener un volcado de núcleo o de depurar un proceso que ha sido asesinado por Oom-Killer?
¿O incluso configurar oom-killer para intentar matar un proceso usando ABRT en su lugar?
Otro enfoque es deshabilitar el exceso de compromiso de memoria.
Para restaurar un poco de cordura en la administración de su memoria:
- Deshabilitar el Asesino OOM (Poner
vm.oom-kill = 0
en /etc/sysctl.conf)- Desactivar overcommit memoria (Ponga
vm.overcommit_memory = 2
en/etc/sysctl.conf
)Esta configuración hará que Linux se comporte de la manera tradicional (si un proceso solicita más memoria de la que está disponible
Tenga en cuenta que este es un valor ternario:malloc()
fallará y se espera que el proceso que solicita la memoria haga frente a esa falla).
- 0 = "estimar si tenemos suficiente RAM"
- 1 = "Siempre di que sí"
- 2 = "di no si no tenemos memoria"
Esto obligará a la aplicación a manejar el agotamiento de la memoria, y posiblemente sus registros / coredump / etc. podrían darle algo útil.
NOTA: ¡ Cuando su sistema se quede sin memoria, no podrá generar nuevos procesos! Puede ser bloqueado del sistema.
que parece el máximo que puede hacer que el núcleo se muestre en errores de falta de memoria.
https://www.kernel.org/doc/Documentation/sysctl/vm.txt
fuente