Wenn Linux nicht mehr über genügend Arbeitsspeicher (OOM) verfügt, wählt der OOM-Killer einen zu tötenden Prozess basierend auf einigen Heuristiken aus (eine interessante Lektüre: http://lwn.net/Articles/317814/ ).
Wie kann man programmgesteuert feststellen, welche Prozesse kürzlich vom OOM-Killer getötet wurden?
linux
linux-kernel
Yang
quelle
quelle
/var/log/syslog
einigen Distributionen und/var/log/messages
in anderen vorhanden. Ich denke, es ist Debian für das erstere und Red Hat für das letztere, BICBW.egrep
macht hier keinen Sinn. Einfach altgrep
oder wenn wir spezifisch sindfgrep
, macht viel mehr Sinn. (Antwort entsprechendVersuchen Sie dies, damit Sie sich keine Gedanken darüber machen müssen, wo sich Ihre Protokolle befinden
quelle
/var/log/messages
, die nicht indmesg
/ angezeigt werden/var/log/dmesg
. Es könnte eine Art Fehlkonfiguration sein, aber es ist erwähnenswert, dass die Verwendung beider Ansätze eine gute Idee sein könnte.dmesg -T
zu verwenden, um lesbare Zeitstempel zu erhaltenJetzt bietet dstat die Funktion, um in Ihrem laufenden System herauszufinden, welcher Prozess für den Tod durch einen OOM-Mechanismus in Frage kommt
und gemäß Manpage
quelle
Probieren Sie es aus:
quelle