Hoe bepaalt Linux welk proces beëindigd moet worden?
sobes.tech AI
Antwoord van AI
Linux gebruikt het OOM (Out-Of-Memory) Killer-algoritme om te bepalen welke processen moeten worden beëindigd wanneer het systeem niet genoeg RAM-geheugen heeft. Dit algoritme analyseert verschillende statistieken om processen te selecteren die de minste negatieve invloed op het systeem hebben bij beëindiging.
Belangrijke factoren die de OOM Killer overweegt:
oom_score: Een numerieke indicator die de waarschijnlijke impact van het beëindigen van een proces op het systeem weerspiegelt. Hoe hoger de score, hoe waarschijnlijker het is dat het proces wordt geselecteerd voor beëindiging. Deze score wordt berekend op basis van het geheugenverbruik van het proces, de prioriteit van het proces (nice-waarde) en andere factoren.- Verbruikte geheugenruimte: Processen die veel geheugen gebruiken, hebben doorgaans een hogere
oom_score. - Prioriteit van het proces: Processen met een lagere prioriteit (hogere nice-waarde) worden meer kans gemaakt om te worden beëindigd.
- Levensduur van het proces: "Jongere" processen kunnen een hogere
oom_scorehebben. - Ouderlijke proces: De OOM Killer probeert geen kritieke systeemprocessen of processen waarvan andere belangrijke processen afhankelijk zijn, te beëindigen.
De gebruiker kan het gedrag van de OOM Killer beïnvloeden door de waarde van oom_score_adj voor specifieke processen aan te passen. Deze verschuiving wordt opgeteld bij de basis oom_score, waardoor een proces minder of meer kans krijgt om te worden beëindigd.
# Bekijk de huidige oom_score voor het proces met PID 1234
cat /proc/1234/oom_score
# Bekijk de huidige oom_score_adj voor het proces met PID 1234
cat /proc/1234/oom_score_adj
# Stel de minimale oom_score_adj (-1000) in voor het proces met PID 1234
# Dit garandeert vrijwel dat het proces niet wordt beëindigd door de OOM Killer
echo -1000 > /proc/1234/oom_score_adj
Op deze manier bepaalt Linux welk proces moet worden beëindigd bij geheugentekort, op basis van een complex algoritme dat verschillende factoren weegt om negatieve gevolgen voor de systeembetrouwbaarheid te minimaliseren.