So überprüfen Sie, warum ein Prozess unter Linux unerwartet gestoppt wurde

Was brauche ich?

  • Ein dedizierter oder VPS -Linux-Server
  • CentOS
  • ]Kitt

Warum sterben Prozesse?

Unerwartetes Verhalten auf dem Webserver kann manchmal durch Einschränkungen der Systemressourcen verursacht werden. Prozesse tun dies oft und manchmal sogar im Übermaß. Das Ziel von Linux ist es, den gesamten verfügbaren physischen Speicher so effizient wie möglich zu nutzen. In der Praxis folgt der Linux-Kernel jedoch der Grundregel, dass eine Seite freien RAM verschwendeter RAM ist. Das System speichert viel mehr im RAM als nur Anwendungsdaten; Am wichtigsten ist, dass Daten von Speicherlaufwerken gespiegelt werden, um einen schnelleren Zugriff zu ermöglichen.

  1. Unerwartet gestoppter Prozess
  1. Plötzlich abgebrochene Aufgaben sind häufig darauf zurückzuführen, dass dem System nicht mehr genügend Arbeitsspeicher zur Verfügung steht. Dies ist der Zeitpunkt, an dem sich der sogenannte „Out-of-Memory“ oder „OOM“ bemerkbar macht. So ähnlich wie der gleichnamige Blue Screen of Death oder „BSoD“, der frühe Windows-Versionen plagt.
  2. Sie können die Protokolle nach Meldungen zu Speichermangelwarnungen durchsuchen:
sudo grep -i -r 'nicht genügend Speicher' /var/log/
  1. Grep durchsucht alle Protokolle im Verzeichnis und zeigt alle Befehle an, die gerade von /var/log/auth.log ausgeführt wurden . Tatsächliche Indikatoren für einen OOM-abgebrochenen Prozess würden etwa so aussehen:

So überprüfen Sie, warum ein Prozess unter Linux unerwartet gestoppt wurde

  1. Das hier notierte Protokoll zeigt, dass es sich bei dem abgebrochenen Prozess um mysqld mit PID 9163 und einem OOM-Score von 511 handelte, als er abgebrochen wurde. Nachrichten und ihr Inhalt variieren je nach der von Ihnen verwendeten Linux-Distribution. Wenn beispielsweise ein für Ihre Webanwendung wichtiger Prozess aufgrund einer OOM-Situation abgebrochen wurde, haben Sie mehrere Möglichkeiten: Reduzieren Sie die vom Prozess angeforderte Speichermenge, verhindern Sie, dass Prozesse Speicher überbelegen, oder fügen Sie einfach mehr Speicher hinzu Ihre Serverkonfiguration.
  1. Aktuelle Ressourcennutzung
  1. Linux verfügt über eine Reihe großartiger Tools zum Verfolgen von Prozessen, die bei der Identifizierung potenzieller Ressourcendefizite helfen können:
frei -h

So überprüfen Sie, warum ein Prozess unter Linux unerwartet gestoppt wurde

  1. Hier ist es wichtig, zwischen von der Anwendung genutztem Speicher, Puffern und Caches zu unterscheiden. In der „Mem“-Zeile der Ausgabe sieht es so aus, als ob fast 75 % unseres RAM belegt sind, aber andererseits ist mehr als die Hälfte des verwendeten Speichers durch zwischengespeicherte Daten belegt.
  2. Der Unterschied besteht darin, dass Anwendungen zwar Speicher für den eigenen Gebrauch reservieren, der Cache jedoch häufig aus Festplattendaten besteht, die der Kernel für einen schnelleren Zugriff vorübergehend im Speicher speichert, was auf Anwendungsebene als freier Speicher gilt.
  3. Vor diesem Hintergrund ist es einfacher zu verstehen, warum belegter und freier Speicher doppelt aufgeführt werden. In der zweiten Zeile steht die tatsächliche Speichernutzung unter Berücksichtigung der von Puffern und Cache belegten Speichermenge.
  4. In diesem Beispiel nutzt das System lediglich 234 MB der insgesamt verfügbaren 993 MB, und es besteht keine unmittelbare Gefahr, dass ein Prozess abgebrochen wird, um Ressourcen zu sparen.
  5. Ein weiteres nützliches Tool zur Speicherüberwachung ist „top“, das nützliche, kontinuierlich aktualisierte Informationen über den Speicher und die CPU-Auslastung von Prozessen, die Laufzeit und andere Statistiken anzeigt. Dies ist besonders nützlich, um ressourcenintensive Aufgaben zu identifizieren:
Spitze

So überprüfen Sie, warum ein Prozess unter Linux unerwartet gestoppt wurde

  1. Oben ist ein System dargestellt, das den Nennwert zum Profil zeigt.
  1. Prüfen Sie, ob Ihre Prozesse gefährdet sind
  1. Wenn der Arbeitsspeicher Ihres Servers so stark ausgelastet ist, dass die Systemstabilität gefährdet werden kann, wählt der Out-of-Memory-Killer anhand vieler Variablen aus, welcher Prozess gelöscht werden soll, z. B. der Menge an geleisteter Arbeit, die verloren gehen würde, und dem insgesamt freigegebenen Speicher. Linux führt für jeden laufenden Prozess eine Punktzahl, die die Wahrscheinlichkeit darstellt, mit der der Prozess in einer OOM-Situation abgebrochen würde.
  2. Dieser Score wird in der Datei /proc/<pid>/oom_score gespeichert . PID ist die Identifikationsnummer für den Prozess, den Sie untersuchen. Die PID kann einfach mit dem folgenden Befehl ermittelt werden:
ps aux ¦ grep <Prozessname>
  1. Der Befehl bei der Suche nach MySQL würde etwa wie folgt aussehen:

So überprüfen Sie, warum ein Prozess unter Linux unerwartet gestoppt wurde

Nächste Schritte

Nachdem Sie die oben genannten Schritte ausgeführt haben, ist es immer eine gute Idee, die Funktion „Over Commit“ zu deaktivieren, die in den meisten Linux-Distributionen enthalten ist. Der Kernel ermöglicht es Prozessen standardmäßig, mehr Speicher anzufordern, als derzeit im System frei ist, um die Speichernutzung zu verbessern. Dies basiert auf der Heuristik, dass die Prozesse nie wirklich den gesamten Speicher nutzen, den sie anfordern. Wenn Ihr System jedoch Gefahr läuft, nicht mehr über genügend Arbeitsspeicher zu verfügen, und Sie verhindern möchten, dass Aufgaben an den OOM-Killer verloren gehen, können Sie die Speicherüberbelegung deaktivieren. Und vergessen wir nicht: Wenn Ihnen der nutzbare Speicher ausgeht, können Sie jederzeit darüber nachdenken, die Hardware Ihres Webservers tatsächlich zu aktualisieren.

Abschluss

Eine übermäßige Nutzung der vom System zugewiesenen Ressourcen kann ein Indikator für eine Reihe von Dingen sein, einschließlich eines tatsächlichen Angriffs durch böswillige Akteure. Seien Sie aufmerksam, treffen Sie Vorsichtsmaßnahmen und bleiben Sie sicher.

  • Um mehr über das beste VPS-Hosting zu erfahren , klicken Sie hier.