Daños colaterales del oom-killer

Submitted by banzai on Sun, 2006-02-19 13:37.

Hola, de nuevo, gracias por su ayuda para la monitorización de procesos, resultó de mucha utilidad.

La duda que les planteo a continuación está relacionada con el mismo problema. Hemos detectado que por falta de memoria, el kernel, en algunas ocasiones, mata a los procesos de nuestra aplicación, aunque monitorizando el sistema, hemos comprobado que no son los que provocan la falta de memoria (es importante saber, que nuestro sistema, tiene la particularidad de no disponer de swap).

Hemos buscado información al respecto, y nos hemos encontrado con que el oom-killer es quien se encarga de decidir a qué procesos se debe matar en caso de falta de memoria, pero parece que a veces elige a procesos inocentes. Por lo que hemos visto, incluso se han creado parches para elminar esta funcionalidad del kernel...

¿Alguien conoce el funcionamiento de esta funcionalidad o en qué parte del kernel reside el código en el que se decide a qué proceso matar?

Gracias por adelantado!

Submitted by kernel-labs on Sun, 2006-02-19 21:03.
Hola, el código encargado de la tarea que comentas se encuentra en:

linux/mm/oom_kill.c

Seguro que estos dos enlaces os sirven de ayuda:

Swapless Embedded Systems
Linux system memory accurately

Saludos.