Was ist ein OOM?
OOM steht für Out Of Memory und bezeichnet den Moment, in dem dem System nicht mehr ausreichend Arbeitsspeicher zur Verfügung steht. Ein OOM-Fehler tritt somit dann auf, wenn der zur Verfügung stehende Arbeitsspeicher nicht mehr ausreicht, um die Anforderungen an das System zu erfüllen. Dies kann aus verschiedenen Gründen auftreten: zu knapp bemessener Arbeitsspeicher, eine anhaltende Verwendung von Anwendungen mit hohem Speicherverbrauch oder viele parallele Zugriffe auf Ihre Webseite.
Tritt ein RAM-Mangel auf, dann wird zunächst der viel langsamere Swap für die Auslagerung der Daten genutzt. Wenn kein Swap vorhanden oder dieser bereits voll belegt ist, dann wird das System immer langsamer, bis es fast nicht mehr arbeiten kann. Das System reagiert, indem es einen oder mehrere Prozesse mittels eines Out-Of-Memory-Killers – kurz OOM-Killer – abbricht. Dadurch wird Speicher wieder freigegeben und somit die Betriebsfähigkeit des Systems wiederhergestellt. Bei einem OOM-Fehler werden also Prozesse beendet, weil zu wenig Arbeitsspeicher verfügbar ist.
Ein einzelner OOM-Fehler ist nicht weiter kritisch und kann im Normalfall gut aufgefangen werden. Sollte aber auf einem System, das eine Datenbank oder einen Anwendungsserver unterstützt, mehrere OOM-Fehler in kürzester Zeit auftreten, dann ist es wichtig, dass dem System so schnell wie möglich mehr RAM zugewiesen werden, um die Stabilität des Clusters sicherzustellen.
Treten auf Ihrem Cluster z. B. MySQL OOM-Fehler auf, wird bei uns im Monitoring ein Alarm ausgelöst und dieser von unserem Monitoring-Team überprüft. Abhängig davon, wie häufig OOM-Fehler auftreten und ob dabei kritische Prozesse, wie beispielsweise MySQL beendet werden, entscheidet ein Mitarbeiter unseres Service-Teams, ob eine Skalierung des RAMs notwendig ist und führt diese dann eigenständig durch. Bei Java OOM-Fehler findet eine automatische Skalierung des RAMs statt.
Wie erkenne ich, ob bei meinem Cluster ein OOM-Fehler aufgetreten ist?
Wenn Sie sich im Managed Center angemeldet haben und sich die RAM-Auslastung im Monitoring Center – Bereich Hardware – anschauen, ist es an dieser Stelle oft nicht auf den ersten Blick ersichtlich, dass es zu einem OOM-Fehler gekommen ist. In der Grafik wird in den meisten Fällen nicht annähernd 100 % RAM-Auslastung erreicht. Dies liegt daran, dass kurz vor Erreichen der 100 %-Grenze der OOM-Killer bereits eingreift, um das System zu schützen. Zudem wird nur eine Messung je Minute durchgeführt, was bei schnellen Veränderungen dazu führt, dass diese nicht aufgezeichnet werden.
Der Zeitpunkt, an dem ein OOM-Fehler aufgetreten ist und der OOM-Killer eingegriffen hat, ist in der Grafik daran zu erkennen, dass der RAM-Verbrauch abrupt sinkt, weil ein oder mehrere Prozesse beendet wurden.
OOM-Fehler werden unter /var/log/kern.log gespeichert und können dort auch überprüft werden. Sie haben per SSH Zugriff auf diese Logs. In den Logs werden Informationen gespeichert, zu welchem Zeitpunkt und welcher Prozess durch den OOM-Killer abgebrochen wurde.
Bei Fragen steht Ihnen unser Support telefonisch unter 05251/414130 oder per E-Mail an support@maxcluster.de zur Verfügung.
Veröffentlicht am 01.03.2024