Jakie jest przesłanie o braku pamięci: poświęcić dziecko?

20

W moim komputerze ostatnio zabrakło pamięci (nieoczekiwana konsekwencja kompilacji oprogramowania podczas pracy z dużymi zestawami danych GIS). W dzienniku systemowym opisującym, jak radził sobie z warunkiem OOM, znajduje się następujący wiersz:

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

O co or sacrifice childchodzi Z pewnością nie zastanawiasz się nad jakimś mrocznym rytuałem, żeby wszystko działało?

znak
źródło

Odpowiedzi:

8

Z plików źródłowych znalazłem oom_kill.c , OOM Killer, po zapisaniu takiego komunikatu w dzienniku systemowym sprawdza potomki zidentyfikowanego procesu i ocenia, czy to możliwe, zabić jeden z nich zamiast samego procesu.

Oto komentarz wyodrębniony z pliku źródłowego wyjaśniający to:

/*
 * 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.
 */
Mariano Paniga
źródło
Robi to również w przypadku przeglądarki Firefox (zawartość internetowa).
neverMind9
2

Mówi o zabiciu procesu potomnego procesu nominowanego do wysłania KILLsygnału.

DopeGhoti
źródło
2
Ale co to znaczy ? Czy istnieje jakiś sposób, w jaki rodzic może „poświęcić” dziecko, aby się uratować?
Thanatos,
Sądzę, że tylko przypuszczam, że ponieważ wszystkie procesy są potomkami procesu inicjacji Linuksa, rodzic w tym kontekście jest procesem Linux, w którym dzieci są różnymi aplikacjami. W takim przypadku proces Linux ratuje się, zabijając jedno z jego dzieci.
Seamus
0

To jest zabójca Oom (Brak pamięci). Kiedy w systemie zabraknie pamięci, jądro Linuksa zabija procesy w celu zwolnienia pamięci. Heurystyka określa, który proces jest najlepszym kandydatem do uwolnienia pamięci bez uszkodzenia systemu (zazwyczaj procesy należące do roota nie są najlepszymi kandydatami).

Więcej informacji tutaj: Jak OOM Killer decyduje, który proces zabić jako pierwszy?

Mali
źródło
4
Nie wyjaśnia to jednak części przesłania „lub poświęć dziecko”.
Mark