it-swarm.com.de

Was ist die Out of Memory-Nachricht: Opferkind?

Mein Computer hat kürzlich nicht mehr genügend Speicher (eine nicht unerwartete Folge des Kompilierens von Software bei der Arbeit mit großen GIS-Datasets). Im Systemprotokoll wird in der folgenden Zeile detailliert beschrieben, wie mit der OOM-Bedingung umgegangen wurde:

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

Was ist das or sacrifice child Über? Sicherlich ist es kein dunkles Ritual, um die Dinge am Laufen zu halten?

22
Mark

Aus den Quelldateien, die ich gefunden habe oom_kill.c , überprüft der OOM Killer, nachdem eine solche Nachricht in das Systemprotokoll geschrieben wurde, untergeordnete Elemente des identifizierten Prozesses und wertet nach Möglichkeit aus, einen von ihnen anstelle des Prozesses selbst zu beenden .

Hier ein Kommentar aus der Quelldatei, der dies erklärt:

/*
 * 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.
 */
8
Mariano Paniga

Es geht darum, ein Kind zu töten Prozess des Prozesses, der für das Senden eines KILL -Signals nominiert ist.

2
DopeGhoti

Dies ist Oom (Out of Memory) Killer. Wenn auf Ihrem System nicht mehr genügend Speicher vorhanden ist, beendet der Linux-Kernel Prozesse, um Speicher freizugeben. Eine Heuristik bestimmt, welcher Prozess der beste Kandidat ist, um Speicher freizugeben, ohne das System zu beschädigen (normalerweise sind Prozesse im Root-Besitz nicht die besten Kandidaten).

Weitere Details hier: Wie entscheidet der OOM-Killer, welcher Prozess zuerst beendet werden soll?

0
Mali