¿Cuál es el mensaje sin memoria: sacrificar niño?


20

Mi computadora recientemente se quedó sin memoria (una consecuencia no inesperada de compilar software mientras trabajaba con grandes conjuntos de datos SIG). En el registro del sistema que detalla cómo se trató la condición OOM se encuentra la siguiente línea:

Out of memory: Kill process 7429 (java) score 259 or sacrifice child

¿De qué se trata eso or sacrifice child? ¿Seguramente no está reflexionando sobre algún ritual oscuro para mantener las cosas en marcha?

Respuestas:


8

De los archivos de origen que encontré oom_kill.c , el Asesino de OOM, después de que dicho mensaje está escrito en el registro del sistema, verifica los elementos secundarios del proceso identificado y evalúa si es posible matar uno de ellos en lugar del proceso en sí.

Aquí un comentario extraído del archivo fuente que explica esto:

/*
 * If any of p's children has a different mm and is eligible for kill,
 * the one with the highest oom_badness() score is sacrificed for its
 * parent.  This attempts to lose the minimal amount of work done while
 * still freeing memory.
 */

También lo hace para Firefox (contenido web).
neverMind9

2

Se trata de matar un proceso secundario del proceso nominado para recibir una KILLseñal.


2
Pero que significa ? ¿Hay algún método por el cual el padre puede "sacrificar" a un niño para salvarse?
Thanatos

Mi suposición, que es solo una suposición, es que dado que todos los procesos son descendientes del proceso de inicio de Linux, el padre en este contexto es un proceso de Linux donde los hijos son las diversas aplicaciones. En este caso, el proceso de Linux se está salvando al matar a uno de sus hijos.
Seamus

0

Este es el asesino de Oom (sin memoria). Cuando su sistema se queda sin memoria, el kernel de Linux elimina los procesos para liberar memoria. Una heurística determina qué proceso es el mejor candidato para liberar memoria sin dañar el sistema (por lo general, los procesos propiedad de la raíz no son los mejores candidatos).

Más detalles aquí: ¿Cómo el asesino OOM decide qué proceso matar primero?


44
Sin embargo, esto no explica la parte del mensaje "o sacrificar hijo".
Mark
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.