Qual è il messaggio di Memoria esaurita: sacrificio bambino?


20

Di recente il mio computer ha esaurito la memoria (una conseguenza non inaspettata della compilazione del software mentre si lavora con set di dati GIS di grandi dimensioni). Nel registro di sistema che illustra in dettaglio come ha gestito la condizione OOM è la seguente riga:

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

Di cosa si or sacrifice childtratta? Sicuramente non sta meditando un rituale oscuro per far andare avanti le cose?

Risposte:


8

Dai file sorgente ho trovato oom_kill.c , OOM Killer, dopo che tale messaggio è stato scritto nel registro di sistema, controlla i figli del processo identificato e valuta se possibile uccidere uno di essi al posto del processo stesso.

Ecco un commento estratto dal file sorgente che spiega questo:

/*
 * 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.
 */

Lo fa anche per Firefox (contenuto Web).
neverMind9

2

Si tratta di uccidere un processo figlio del processo nominato per l'invio di un KILLsegnale.


2
Ma cosa significa ? Esiste un metodo con cui il genitore può "sacrificare" un bambino per salvarsi?
Thanatos,

La mia ipotesi, che è solo un'ipotesi, è che poiché tutti i processi sono discendenti del processo di init Linux, il genitore in questo contesto è un processo Linux in cui i bambini sono le varie applicazioni. In questo caso, il processo Linux si sta salvando uccidendo uno dei suoi figli.
Seamus,

0

Questo è l'assassino di Oom (memoria esaurita). Quando il sistema esaurisce la memoria, il kernel di Linux uccide i processi per liberare memoria. Un euristico determina quale processo è il miglior candidato per liberare memoria senza danneggiare il sistema (in genere, i processi di proprietà root non sono i migliori candidati).

Maggiori dettagli qui: in che modo il killer OOM decide quale processo uccidere per primo?


4
Questo, tuttavia, non spiega la parte del messaggio "o sacrifica un bambino".
Segna
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.