Wie behebe ich Fehler bei einer EC2-Linux-Instance, die eine Statusprüfung aufgrund einer zu hohen Ressourcenauslastung nicht besteht?

Lesedauer: 8 Minute
0

Meine Amazon Elastic Compute Cloud (Amazon EC2) Linux-Instance hat die Instance-Statusüberprüfung aufgrund einer Überlastung ihrer Ressourcen nicht bestanden.

Kurzbeschreibung

Im Folgenden sind drei der häufigsten Gründe aufgeführt, warum Ihre Zustandsprüfung aufgrund einer Überlastung der Ressourcen fehlschlagen könnte:

  • Die CPU-Auslastung Ihrer Instance erreichte fast 100 % und die Instance hatte nicht mehr genug Rechenkapazität übrig, um den Kernel ausführen zu können.
  • Das Root-Gerät ist zu 100 % voll und verhindert, dass andere Prozesse abgeschlossen oder gestartet werden.
  • Die Prozesse, die auf der Instance ausgeführt wurden, nutzten ihren gesamten Speicher und verhinderten so, dass der Kernel ausgeführt werden konnte.

Behebung

Beenden und starten Sie die Instance

Warnung:

  • In Instance-Speicher-Volumes gespeicherte Daten gehen verloren, wenn die Instance gestoppt wird. Stellen Sie sicher, dass Sie eine Sicherungskopie der Daten speichern, bevor Sie die Instance beenden. Im Gegensatz zu EBS-gestützten Volumes sind Instance-Store-Speicher-Volumes kurzlebig und unterstützen keine Datenpersistenz. Weitere Informationen finden Sie unter Was passiert, wenn Sie eine Instance anhalten?.
  • Die Stopp- und Startvorgänge auf der Instance zwingen den Kernel, alle laufenden Prozesse zu stoppen. Dies ist eine vorübergehende Lösung, um Ressourcen an das Betriebssystem zurückzugeben. Wenn Sie die Grundursache des Problems nicht beheben, besteht weiterhin eine Überlastung.
  • Die statische öffentliche IPv4-Adresse, die Amazon EC2 der Instance beim Start automatisch zugewiesen hat, ändert sich nach dem Stopp und Start. Um eine öffentliche IPv4-Adresse beizubehalten, die sich nicht ändert, wenn die Instance gestoppt wird, verwenden Sie eine Elastic IP-Adresse.

Weitere Informationen finden Sie unter Stop and start your instances.

Überprüfen Sie die Amazon CloudWatch-Metriken zur CPU-Auslastung

Sehen Sie sich die CloudWatch-Metriken der Instance an. Wenn die CPU-Auslastung bei oder nahe 100 % liegt, verwenden Sie die folgenden Optionen zur Fehlerbehebung:

**Hinweis:**Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Überprüfen Sie das Systemprotokoll der Instance auf Fehler

Überprüfen Sie das Systemprotokoll auf No space left on device- oder Out of memory-Fehler.

Bei Gerätefehler ist kein Speicherplatz mehr vorhanden

Wenn im Systemprotokoll der Instance ein Fehler ähnlich wie „OSError:\ [Error 28] No space left on device '/var/lib/'“ erscheint, ist das Dateisystem, das den aufgelisteten Ordner enthält, voll. In diesem Beispiel ist /var/lib voll.

Mit einer der folgenden Methoden können Sie Speicherplatz auf dem Dateisystem freigeben:

Methode 1: Verwenden Sie die serielle EC2-Konsole für Linux-Instances

Wenn Sie die serielle EC2-Konsole für Linux-Instances aktiviert haben, können Sie sie zur Fehlerbehebung bei unterstützten Nitro-basierten Instance-Typen und Bare-Metal-Instances verwenden. Die serielle Konsole hilft Ihnen bei der Behebung von Problemen bei Startvorgängen, Netzwerkkonfigurationen und SSH-Konfigurationen. Die serielle Konsole stellt eine Verbindung zu Ihrer Instance her, ohne dass eine funktionierende Netzwerkverbindung erforderlich ist. Sie können über die Amazon EC2-Konsole oder die AWS-CLI auf die serielle Konsole zugreifen.

Wenn Sie die serielle EC2-Konsole noch nicht verwendet haben, überprüfen Sie die Voraussetzungen und konfigurieren Sie den Zugriff, bevor Sie versuchen, eine Verbindung herzustellen. Wenn Ihre Instance nicht erreichbar ist und Sie den Zugriff auf die serielle Konsole nicht konfiguriert haben, folgen Sie den Anweisungen in Methode 2: Verwenden Sie eine Rettungsinstance. Informationen zur Konfiguration der seriellen EC2-Konsole finden Sie unter Configure access to the EC2 serial console.

Methode 2: Verwenden Sie eine Rettungsinstance

**Warnung:**Das folgende Verfahren erfordert das Stoppen der Instance. In Instance-Speicher-Volumes gespeicherte Daten gehen verloren, wenn die Instance gestoppt wird. Stellen Sie sicher, dass Sie eine Sicherungskopie der Daten speichern, bevor Sie die Instance beenden. Im Gegensatz zu EBS-gestützten Volumes sind Instance-Store-Speicher-Volumes kurzlebig und unterstützen keine Datenpersistenz. Weitere Informationen finden Sie unter Was passiert, wenn Sie eine Instanz anhalten?.

1.Starten Sie eine neue EC2-Instance in Ihrer Virtual Private Cloud (VPC). Verwenden Sie dasselbe Amazon Machine Image (AMI) in derselben Availability Zone wie die beeinträchtigte Instance. Die neue Instance wird zu Ihrer Rescue-Instance.

Oder verwenden Sie eine vorhandene Instance, auf die Sie zugreifen können. Die vorhandene Instance muss dasselbe AMI verwenden und sich in derselben Availability Zone befinden wie Ihre beeinträchtigte Instance

2.Stoppen Sie die beeinträchtigte Instance.

3.Trennen Sie das Root-Volume des Amazon Elastic Block Store (Amazon EBS) (/dev/xvda oder /dev/sda1) von Ihrer beeinträchtigten Instance. Notieren Sie den Gerätenamen (/dev/xvda oder /dev/sda1) Ihres Root-Volumes.

4.Schließen Sie das EBS-Volume als sekundäres Gerät (/dev/sdf) an die Rettungsinstanz an.

5.Stellen Sie mithilfe von SSH eine Verbindung zu Ihrer Rescue-Instance her.

6.Erstellen Sie ein Mountpunktverzeichnis (/rescue) für das neue Volume, das an die Rettungsinstance angehängt ist

$ sudo mkdir /rescue

7.Mounten Sie das Volume in dem Verzeichnis, das Sie in Schritt 6 erstellt haben.

$ sudo mount /dev/xvdf1 /rescue

Das Gerät (/dev/xvdf1) ist möglicherweise mit einem anderen device name an die Rettungsinstanz angeschlossen. Verwenden Sie den Befehl lsblk, um Ihre verfügbaren Festplattengeräte zusammen mit ihren Mount-Points anzuzeigen und die richtigen Gerätenamen zu ermitteln.

**Hinweis:**Möglicherweise erhalten Sie eine Fehlermeldung ähnlich der folgenden:

„...falscher FS-Typ, schlechte Option, fehlerhafter Superblock auf /dev/nvme2n1, fehlende Codepage oder Hilfsprogramm oder ein anderer Fehler.“

Der vorherige Fehler wird durch einen UUID-Konflikt mit dem XFS-Dateisystem verursacht. Wenn Sie diesen Fehler erhalten, finden Sie weitere Informationen unter Why can't I mount my Amazon EBS volume?

8.Führen Sie den Befehl du -h aus, um zu überprüfen, welche Dateien den meisten Speicherplatz beanspruchen.

du -shcm /rescue/var/lib/* |sort -n

9.Löschen Sie Dateien nach Bedarf, um zusätzlichen Speicherplatz freizugeben.

10.Führen Sie den Befehl unmount aus, um das sekundäre Gerät von Ihrer Rettungsinstanz zu trennen.

$ sudo umount /rescue

Wenn der Unmount-Vorgang nicht erfolgreich ist, müssen Sie möglicherweise die Rettungsinstanz beenden oder neu starten, um eine saubere Deinstallation zu ermöglichen.

11.Trennen Sie das sekundäre Volume (/dev/sdf) von der Rettungsinstanz. Hängen Sie es dann als /dev/xvda (Root-Volume) an die ursprüngliche Instance an.

12.Starten Sie die Instance und überprüfen Sie dann, ob die Instance reagiert.

Sie können die Größe des EBS-Root-Volumes mithilfe der folgenden Schritte ändern:

1.Fordern Sie eine Änderung der EBS-Volumengröße an.

2.Erweitern Sie ein Linux-Dateisystem, nachdem Sie die Größe eines Volumes mithilfe einer Rettungsinstanz geändert haben

Fehler bei unzureichendem Speicher

Wenn der Fehler „Out of memory: kill process“ im Systemlog der Instance erscheint, ist der Speicher der Instance erschöpft. Wenn der Speicher erschöpft ist, hat der Kernel nicht genug Speicher zum Ausführen und andere Prozesse werden beendet, um Speicherplatz freizugeben.

Weitere Informationen zur Behebung von Problemen mit zu wenig Arbeitsspeicher (OOM) finden Sie unter Out of memory:kill process.

Gehen Sie wie in Methode 2 beschrieben vor, um die Speicherfehlerprotokolle (Out of Memory) zu überprüfen. Verwenden Sie eine Rettungsinstance wie in Schritt 7 beschrieben. Stellen Sie das Volume bereit.

Verwenden Sie dann je nach Linux-Distribution die folgenden Befehle, um die Protokolle nach Warnmeldungen zu wenig Arbeitsspeicher zu durchsuchen:

Amazon Linux 1 und Amazon Linux 2

sudo grep -i -r 'out of memory' /var/log/

Amazon Linux 2023

$ sudo journalctl -p err | grep -i "out of memory"

-oder-

$ sudo dmesg | grep -i "out of memory"

Weitere Informationen zur Behebung von Problemen mit zu wenig Arbeitsspeicher (OOM) finden Sie unter Out of memory:kill process.

Fehler bei der Seitenzuweisung

Ein Fehler bei der Seitenzuweisung tritt auf, wenn der Kernel-Speicherzuweisungsgenerator die Zuweisungsanforderung nicht erfüllt. In diesem Fall wird dem Systemprotokoll eine Fehlermeldung bei der Seitenzuweisung hinzugefügt.

Um dieses Problem zu beheben und zu lösen, sollten Sie erwägen, die Instance auf einen größeren Instance-Typ zu aktualisieren. Oder fügen Sie bei Instances, die temporäre Instance-Speicher-Volumes verwenden, die Instance Swap-Speicher hinzu, um den Speicherdruck zu verringern.

Weitere Informationen zur Einrichtung von Swap-Space finden Sie unter:

**Hinweis:**Die Instance verwendet Swap-Speicherplatz, wenn der Arbeitsspeicher voll ist. Sie können Swap-Speicherplatz für Instances mit wenig RAM verwenden, dies ist jedoch kein Ersatz für mehr RAM. Da sich der Swap-Space auf der Festplatte der Instance befindet, ist die Leistung im Vergleich zum tatsächlichen RAM langsamer. Für mehr oder schnelleren Speicher sollten Sie erwägen, Ihre Instance-Größe zu erhöhen.

Weitere Informationen zu Fehlern bei der Seitenzuweisung finden Sie unter What are page allocation failures auf der Website access.redhat.com.

Ähnliche Informationen

Warum ist meine EC2 Linux-Instance nicht erreichbar und besteht eine oder beide Statusprüfungen nicht?

Welche Schritte muss ich unternehmen, bevor ich den Instance-Typ meiner EC2-Linux-Instance ändere?

Wie diagnostiziere ich eine hohe CPU-Auslastung auf einer EC2-Windows-Instance?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten