Wie man Ursachen für Oom-Killer-Tötungsprozesse diagnostiziert


9

Ich habe einen kleinen virtuellen privaten Server, auf dem CentOS und www / mail / db ausgeführt werden. In letzter Zeit gab es einige Vorfälle, bei denen der Webserver und ssh nicht mehr reagierten.

Als ich mir die Protokolle ansah, sah ich, dass Oom-Killer diese Prozesse beendet hatte, möglicherweise weil nicht mehr genügend Speicher und Austausch vorhanden waren.

Kann mir jemand Hinweise geben, wie ich diagnostizieren kann, was den jüngsten Vorfall verursacht hat? Ist es wahrscheinlich der erste Prozess, der getötet wird? Wo soll ich sonst suchen?

Antworten:


11

Nein, der Algorithmus ist nicht so einfach. Weitere Informationen finden Sie in:

http://linux-mm.org/OOM_Killer

Wenn Sie die Speichernutzung verfolgen möchten, würde ich empfehlen, einen Befehl wie den folgenden auszuführen:

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

Sie erhalten eine Liste der Prozesse, die den meisten Speicher belegen (und wahrscheinlich die OOM-Situation verursachen). Entfernen Sie das, | headwenn Sie alle Prozesse überprüfen möchten.

Wenn Sie dies auf Ihren Cron legen, wiederholen Sie es alle 5 Minuten und speichern Sie es in einer Datei. Halten Sie mindestens ein paar Tage Zeit, damit Sie später überprüfen können, was passiert ist.

Für kritische Dienste wie ssh würde ich empfehlen, monit zu verwenden, um sie in einer solchen Situation automatisch neu zu starten. Wenn Sie keine Remote-Konsole haben, kann dies den Zugriff auf den Computer verhindern.

Viel Glück,
João Miguel Neves


Vielen Dank - endlich versuchen Sie es nach ein paar weiteren Vorfällen, bei denen Oom-Killer meinen Server in die Knie gezwungen hat. Müssen die Ursache aufspüren.
Dunxd

6

Ich hatte es in letzter Zeit schwer damit, weil die Prozesse, auf die der Oom-Killer tritt, nicht unbedingt die sind, die schief gelaufen sind. Während ich versuchte, das zu diagnostizieren, lernte ich eines meiner Lieblingswerkzeuge kennen.

Dieses Dienstprogramm ist wie ein Top auf Steroiden. Über ein voreingestelltes Zeitintervall werden Systeminformationen profiliert. Sie können es dann wiedergeben, um zu sehen, was los ist. Es werden Prozesse hervorgehoben, die 80% + in Blau und 90% + in Rot sind. Die nützlichste Ansicht ist eine Tabelle zur Speichernutzung, in der angegeben ist, wie viel Speicher im letzten Zeitraum zugewiesen wurde. Das hat mir am meisten geholfen.

Fantastisches Werkzeug - kann nicht genug dazu sagen.

auf dem Leistungsmonitor



1

OOM beendet nur den Prozess, der zu diesem Zeitpunkt am meisten Speicher benötigt. Nicht unbedingt der Prozess, der das Limit überschritten oder den OOm-Anruf ausgelöst hat.
Auch Linux ist mit seiner Speicherzuordnung lax. AKA Wenn Ihr Prozess 5 GB benötigt, aber nur 3 verwendet, lässt Linux einen anderen Prozess die 2 verwenden, die er nicht verwendet. Leistung> Zuverlässigkeit. dann, wenn p1 seine vollen 5 braucht, kann es es nicht bekommen

Kein Ausdruck. Ich beschäftige mich nur selbst damit und was ich gefunden habe

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.