/proc/pid/oom_score_adj - OOM-Killer-Bewertungsanpasssung
- /proc/PID/oom_score_adj (seit Linux 2.6.36)
- Diese Datei kann zur Anpassung der Schlechtigkeitsheuristik verwandt
werden, die eingesetzt wird, um in Speicherknappheitssituationen den zu
beendenden Prozess auszuwählen.
- Die Schlechtigkeits-Heuristik weist jedem möglichen Prozess einen
Wert von 0 (niemals töten) bis 1000 (immer töten) zu, um zu
bestimmen, welcher Prozess infrage kommt. Der Wert beschreibt im
Wesentlichen den kontinuierlichen Anteil des erlaubten Speichers, aus dem
sich der Prozess Speicher zuweisen darf. Als Grundlage dient dazu der
aktuelle verwendete Speicher und Auslagerungsspeicher. Wenn ein Prozess
beispielsweise sämtlichen erlaubten Speicher nutzt, ist dessen
Schlechtigkeitsbewertung bei 1000. Nutzt er die Hälfte des
erlaubten Speichers, beträgt die Bewertung 500.
- Es gibt einen weiteren Faktor in der Schlechtigkeitsbewertung:
Root-Prozessen wird 3% zusätzlicher Speicher gegenüber
anderen Prozessen gegeben.
- Die Menge des »erlaubten« Speichers hängt von dem
Kontext ab, in dem der OOM-Killer aufgerufen wurde. Falls der Kontext ist,
dass der oder die Prozessoren ausgelastet sind, entspricht der erlaubte
Speicher dem Speicher, der diesem Cpuset zugewiesen ist (siehe
cpuset(7)). Falls der oder die Mempolicy-Knoten erschöpft
ist/sind, repräsentiert der erlaubte Speicher die Mempolicy-Knoten.
Falls eine Arbeitsspeicher- (oder Auslagerungsspeicher-) Grenze erreicht
wurde, entspricht der erlaubte Speicher dieser Grenze. Sollte das gesamte
System keinen Speicher mehr übrig haben, steht der erlaubte
Speicher für alle verfügbaren Ressoucen.
- Die Wert aus oom_score_adj wird zur Schlechtigkeitsbewertung
hinzugefügt, bevor dieser zur Ermittlung des zu tötenden
Prozesses verwendet wird. Zulässige Werte liegen zwischen -1000
(OOM_SCORE_ADJ_MIN) und +1000 (OOM_SCORE_ADJ_MAX), einschließlich
dieser. Dies ermöglicht auf Anwendungsebene die Einstellungen
für das OOM-Killern zu steuern; dies reicht von der permanentes
Bevorzugen eines bestimmten Prozesses oder deren vollständige
Deaktivierung des OOM-Killers für ihn. Der niedrigste
mögliche Wert von -1000 ist gleichbedeutend mit der
vollständigen Deaktivierung des OOM-Killers für diesen
Prozess, da dieser stets eine Schlechtigkeitsbewertung von 0 meldet.
- Infolgedessen ist es für die Anwendungsebene sehr einfach, die
Speichermenge zu definieren, die für jeden Prozess in Betracht
gezogen wird. Die Festlegung eines Wertes von +500 für
oom_score_adj ist beispielsweise etwa gleichbedeutend damit, dass
die übrigen Prozesse, die das gleiche System, Cpuset, Mempolicy
oder Speicher-Controller-Ressourcen mit verwenden, mindestens 50% mehr
Speicher verwenden. Andererseits wäre ein Wert von -500 etwa
gleichbedeutend damit, den erlaubten Speicher eines Prozesses bei der
Bewertung des erlaubten Speichers des Prozesses um 50% zu reduzieren.
- Zur Rückwärtskompatibilität mit früheren
Kerneln kann /proc/PID/oom_adj immer noch zur
Feineinstellung der Schlechtigkeitsbewertung verwendet werden. Dieser Wert
skaliert linear mit oom_score_adj.
- Schreiben in /proc/PID/oom_score_adj oder
/proc/PID/oom_adj führt zur Änderung des
anderen mit dem skalierten Wert.
- Das Programm choom(1) stellt eine Befehlszeilenschnittstelle
für die Anpassung des Wertes oom_score_adj eines laufenden
Prozesses oder frisch ausgeführten Befehls bereit.
- /proc/PID/oom_adj (seit Linux 2.6.11)
- Diese Datei kann verwendet werden, um die Bewertung anzupassen, anhand
dessen Prozesse bei Speicherknappheit (out-of-memory, OOM) abgebrochen
werden. Der Kernel verwendet diesen Wert für eine
Bit-Verschiebeoperation des oom_score-Werts des Prozesses:
Gültig sind Werte im Bereich von -16 bis +15, sowie der besondere
Wert -17, der einen Abbruch des Prozesses wegen Speicherknappheit
deaktiviert. Ein positiver Wert erhöht die Wahrscheinlichkeit, dass
der Prozess vom OOM-Killer getötet wird, ein negativer Wert senkt
die Wahrscheinlichkeit.
- Der Standardwert für diese Datei ist 0. Ein neuer Prozess erbt die
Einstellung oom_adj von seinem Elternprozess. Ein Prozess muss
privilegiert sein (CAP_SYS_RESOURCE), um diese Datei zu
aktualisieren. Allerdings kann ein Prozess seine eigene Einstellung
oom_adj selbst erhöhen (seit Linux 2.6.20).
- seit Linux 2.6.36 wird die Verwendung dieser Datei gegenüber
/proc/PID/oom_score_adj missbilligt und sie
schließlich in Linux 3.7 entfernt.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Dr. Tobias
Quathamer <toddy@debian.org>, Chris Leick <c.leick@vollbio.de>,
Erik Pfannenstein <debianignatz@gmx.de> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die Mailingliste der
Übersetzer:
debian-l10n-german@lists.debian.org.