Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Senden Sie einen Diagnose-Interrupt, um eine nicht erreichbare Amazon-Instance zu debuggen EC2
Warnung
Diagnose-Interrupts sind für fortgeschrittene Benutzer vorgesehen. Eine falsche Verwendung kann sich negativ auf Ihre Instance auswirken. Das Senden eines Diagnose-Interrupts an eine Instance kann zum Absturz und Neustart einer Instance führen, was unter Umständen den Verlust von Daten zur Folge hat.
Sie können einen Diagnose-Interrupt an eine nicht erreichbare oder nicht reagierende Instance senden, um manuell eine Kernel-Panic für eine Linux-Instance oder einen Stop-Fehler (allgemein als Bluescreen-Fehler bezeichnet) für eine Windows-Instance auszulösen.
Linux-Instances
Linux-Betriebssysteme stürzen bei einer Kernel-Panik gewöhnlich ab und werden neu gestartet. Das spezifische Verhalten des Betriebssystems ist von seiner Konfiguration abhängig. Mit einer Kernel-Panik kann das Betriebssystem der Instance auch zum Ausführen von Aufgaben, z. B. Generieren einer Dump-Datei, veranlasst werden. Sie können dann mithilfe der Informationen in der Absturzabbilddatei eine Ursachenanalyse durchführen und die Instance debuggen. Die Absturzabbilddaten werden lokal von dem Betriebssystem auf der Instance selbst erstellt.
Windows-Instances
Im Allgemeinen stürzen Windows-Betriebssysteme ab und werden neu gestartet, wenn ein Abbruchfehler auftritt, das spezifische Verhalten hängt aber von seiner Konfiguration ab. Ein Abbruchfehler kann auch bewirken, dass das Betriebssystem Debugging-Informationen, wie z. B. ein Kernel-Speicherabbild, in einer Datei ausgibt. Sie können anhand dieser Informationen eine Ursachenanalyse durchführen, um die Instance zu debuggen. Die Speicherabbilddaten werden lokal von dem Betriebssystem auf der Instance selbst erstellt.
Bevor Sie ein Diagnose-Interrupt an Ihre Instance senden, empfehlen wir Ihnen, die Dokumentation für Ihr Betriebssystem zu konsultieren und anschließend die erforderlichen Konfigurationsänderungen vorzunehmen.
Unterstützte Instance-Typen
Der Diagnose-Interrupt wird auf allen Nitro-basierten Instance-Typen unterstützt, mit Ausnahme derjenigen, die mit Graviton-Prozessoren betrieben werden. AWS Weitere Informationen finden Sie unter Instances, die auf dem AWS Nitro System und Graviton basieren.AWS
Voraussetzungen
Bevor Sie einen Diagnose-Interrupt verwenden, müssen Sie das Betriebssystem der Instance entsprechend konfigurieren. Dadurch wird sichergestellt, dass es die Aktionen ausführt, die Sie benötigen, wenn ein Kernel-Panic (Linux-Instanzen) oder ein Stop-Fehler (Windows-Instanzen) auftritt.
So konfigurieren Sie Amazon Linux 2 zum Generieren eines Absturzabbildes bei Auftreten einer Kernel-Panik
-
Verbinden Sie sich mit der Instance.
-
Installieren Sie kexec und kdump.
[ec2-user ~]$
sudo yum install kexec-tools -y -
Konfigurieren Sie den Kernel zum Reservieren einer angemessenen Menge an Arbeitsspeicher für den sekundären Kernel. Die Menge an Arbeitsspeicher ist von dem insgesamt verfügbaren Arbeitsspeicher Ihrer Instance abhängig. Öffnen Sie die Datei
/etc/default/grub
in Ihrem bevorzugten Texteditor, suchen Sie die Zeile, die mitGRUB_CMDLINE_LINUX_DEFAULT
beginnt, und fügen Sie dann den Parametercrashkernel
im folgenden Format hinzu:crashkernel=
. Um beispielsweisememory_to_reserve
160MB
zu reservieren, ändern Sie die Dateigrub
wie folgt ab:GRUB_CMDLINE_LINUX_DEFAULT="crashkernel=160M console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0" GRUB_TIMEOUT=0 GRUB_DISABLE_RECOVERY="true"
-
Speichern Sie Ihre Änderungen und schließen Sie die Datei
grub
. -
Erstellen Sie die GRUB2 Konfigurationsdatei neu.
[ec2-user ~]$
sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Bei Instances, die auf Intel und AMD Prozessoren basieren, sendet der
send-diagnostic-interrupt
Befehl einen unbekannten, nicht maskierbaren Interrupt (NMI) an die Instanz. Sie müssen den Kernel so konfigurieren, dass er abstürzt, wenn er das Unbekannte empfängt. NMI Öffnen Sie die Datei/etc/sysctl.conf
mit Ihrem bevorzugten Texteditor und fügen Sie Folgendes hinzu.kernel.unknown_nmi_panic=1
-
Starten Sie Ihre Instance neu und richten Sie wieder eine Verbindung zu ihr ein.
-
Vergewissern Sie sich, dass der Kernel mit dem richtigen
crashkernel
-Parameter gestartet wurde.$
grep crashkernel /proc/cmdlineDie folgende Beispielausgabe weist auf eine erfolgreiche Konfiguration hin.
BOOT_IMAGE=/boot/vmlinuz-4.14.128-112.105.amzn2.x86_64 root=UUID=a1e1011e-e38f-408e-878b-fed395b47ad6 ro crashkernel=160M console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0
-
Überprüfen Sie, ob der kdump-Service ausgeführt wird.
[ec2-user ~]$
systemctl status kdump.serviceDie folgende Beispielausgabe zeigt das Ergebnis, wenn der Service kdump derzeit ausgeführt wird.
kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled) Active: active (exited) since Fri 2019-05-24 23:29:13 UTC; 22s ago Process: 2503 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS) Main PID: 2503 (code=exited, status=0/SUCCESS)
Anmerkung
Die Absturzabbilddatei wird standardmäßig in /var/crash/
gespeichert. Um den Speicherort zu ändern, bearbeiten Sie die Datei /etc/kdump.conf
mit Ihrem bevorzugten Texteditor.
So konfigurieren Sie Amazon Linux zum Generieren eines Absturzabbildes bei Auftreten einer Kernel-Panik
-
Verbinden Sie sich mit der Instance.
-
Installieren Sie kexec und kdump.
[ec2-user ~]$
sudo yum install kexec-tools -y -
Konfigurieren Sie den Kernel zum Reservieren einer angemessenen Menge an Arbeitsspeicher für den sekundären Kernel. Die Menge an Arbeitsspeicher ist von dem insgesamt verfügbaren Arbeitsspeicher Ihrer Instance abhängig.
$
sudo grubby --args="crashkernel=memory_to_reserve
" --update-kernel=ALLUm beispielsweise
160MB
für den Absturzkernel zu reservieren, verwenden Sie den folgenden Befehl.$
sudo grubby --args="crashkernel=160M" --update-kernel=ALL -
Bei Instances, die auf Intel und AMD Prozessoren basieren, sendet der
send-diagnostic-interrupt
Befehl einen unbekannten, nicht maskierbaren Interrupt (NMI) an die Instanz. Sie müssen den Kernel so konfigurieren, dass er abstürzt, wenn er das Unbekannte empfängt. NMI Öffnen Sie die Datei/etc/sysctl.conf
mit Ihrem bevorzugten Texteditor und fügen Sie Folgendes hinzu.kernel.unknown_nmi_panic=1
-
Starten Sie Ihre Instance neu und richten Sie wieder eine Verbindung zu ihr ein.
-
Vergewissern Sie sich, dass der Kernel mit dem richtigen
crashkernel
-Parameter gestartet wurde.$
grep crashkernel /proc/cmdlineDie folgende Beispielausgabe weist auf eine erfolgreiche Konfiguration hin.
root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 LANG=en_US.UTF-8 KEYTABLE=us crashkernel=160M
-
Überprüfen Sie, ob der kdump-Service ausgeführt wird.
[ec2-user ~]$
sudo service kdump statusWenn der Service derzeit ausgeführt wird, gibt der Befehl als Antwort
Kdump is operational
zurück.
Anmerkung
Die Absturzabbilddatei wird standardmäßig in gespeicher /var/crash/
. Um den Speicherort zu ändern, bearbeiten Sie die Datei /etc/kdump.conf
mit Ihrem bevorzugten Texteditor.
Um SUSE Linux Enterprise, Ubuntu oder Red Hat Enterprise Linux zu konfigurieren
Bei Instances, die auf Intel und AMD Prozessoren basieren, sendet der send-diagnostic-interrupt
Befehl einen unbekannten, nicht maskierbaren Interrupt (NMI) an die Instanz. Sie müssen den Kernel so konfigurieren, dass er abstürzt, wenn er Unbekanntes empfängt, NMI indem Sie die Konfigurationsdatei für Ihr Betriebssystem anpassen. Informationen darüber, wie Sie den Kernel so konfigurieren, dass er abstürzt, finden Sie in der Dokumentation Ihres Betriebssystems:
So konfigurieren Sie Windows zum Generieren eines Speicherabbilds bei Auftreten von Abbruchfehlern
-
Verbinden Sie sich mit der Instance.
-
Öffnen Sie die Systemsteuerung und wählen Sie System, Erweiterte Systemeinstellungen.
-
Wählen Sie im Dialogfeld Systemeigenschaften die Registerkarte Erweitert aus.
-
Wählen Sie im Bereich Startup und Wiederherstellen die Option Einstellungen....
-
Konfigurieren Sie die Einstellungen im Bereich Systemfehler ganz nach Bedarf und wählen Sie dann OK.
Weitere Informationen zum Konfigurieren von Windows-Abbruchfehlern finden Sie unter Overview of memory dump file options for Windows
Senden eines Diagnose-Interrupts
Nachdem Sie die erforderlichen Konfigurationsänderungen vorgenommen haben, können Sie mithilfe von AWS CLI oder Amazon EC2 API einen Diagnose-Interrupt an Ihre Instance senden.