Quel est le message Out of Memory: sacrifier l'enfant?


20

Mon ordinateur a récemment manqué de mémoire (une conséquence non inattendue de la compilation de logiciels en travaillant avec de grands ensembles de données SIG). Dans le journal système détaillant comment il a traité la condition de MOO est la ligne suivante:

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

De quoi s'agit- or sacrifice childil? Certes, il ne réfléchit pas à un rituel sombre pour faire avancer les choses?

Réponses:


8

À partir des fichiers source, j'ai trouvé oom_kill.c , le OOM Killer, après qu'un tel message soit écrit dans le journal système, vérifie les enfants du processus identifié et évalue si possible de tuer l'un d'eux à la place du processus lui-même.

Voici un commentaire extrait du fichier source expliquant ceci:

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

Il le fait également pour Firefox (contenu Web).
neverMind9

2

Il s'agit de tuer un processus enfant du processus désigné pour recevoir un KILLsignal.


2
Mais qu'est-ce que cela signifie ? Existe-t-il une méthode par laquelle le parent peut "sacrifier" un enfant pour se sauver?
Thanatos

Ma supposition, qui est juste une supposition, est que, puisque tous les processus sont des descendants du processus d'initialisation Linux, le parent dans ce contexte est un processus Linux où les enfants sont les diverses applications. Dans ce cas, le processus Linux se sauve en tuant l'un de ses enfants.
Seamus

0

C'est le tueur Oom (Out of memory). Lorsque votre système manque de mémoire, le noyau linux tue les processus pour libérer de la mémoire. Une heuristique détermine quel processus est le meilleur candidat pour libérer de la mémoire sans endommager le système (généralement, les processus appartenant à la racine ne sont pas les meilleurs candidats).

Plus de détails ici: Comment le tueur OOM décide quel processus tuer en premier?


4
Cela n'explique cependant pas la partie «ou sacrifier l'enfant» du message.
Mark
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.