Blog

WebSphere: Heap-Dump mit Jython generieren

Bild von Kamen Tarlov
Kamen Tarlov
CEO & DevOps-Leiter
02.06.2016
Lesezeit: 2 Minuten.
Zuletzt aktualisiert am: 04.03.2025

Inhaltsübersicht

Java Virtual Machine (JVM) Heap Space

Mögliche Fehler des Java-Code-Core-Dumps JVM Es wird empfohlen, den Anwendungsserver zu optimieren und nicht nur die bei der Installation des Anwendungsservers zugewiesenen Standardwerte beizubehalten. Wenn die Heap-Größe nicht verwaltet oder abgestimmt wird, können Sie die Symptome einer schlechten Speicherverwaltung sehen, die von sporadischen Leistungsproblemen bis hin zu periodischen Ausfällen und automatischen Neustarts der JVM reichen können, die möglicherweise keinen Core-Dump oder Fehler erzeugen.

Wir können jedoch JVM-Argumente festlegen, um sicherzustellen, dass Java-Core-Dumps ausgeführt werden, wenn die JVM abstürzt. Ein Java-Core-Dump ähnelt einem Linux-Core-Dump, der die Prozesse und den Zustand des Betriebssystems enthält; ein Java-Core-Dump enthält jedoch nur die Prozesse und den Zustand der JVM selbst. Eine JVM kann aufgrund von hängenden Threads oder anderen internen JVM-Problemen abstürzen; es könnte sich um fehlerhaften Code handeln, d. h. um einen Bug, oder um viele andere Szenarien wie festgefahrenen Code. Ein Java-Core-Dump ist im Wesentlichen ein Satz von Java-Stack-Traces zum Zeitpunkt des Auftretens des Fehlers oder wenn ein Core-Dump manuell ausgegeben wird. Wir können nicht alle Szenarien abdecken, die einen JVM-Absturz verursachen können, aber wir können Ihnen einige Konfigurationen zeigen, die Ihnen helfen, Debug-Informationen zu sammeln, die Sie bei Ihren Untersuchungen verwenden können, um die Ursache eines JVM-Absturzes zu finden. Wenn wir die JVM auf core dump setzen, erhalten wir eine core dump Datei, die wir überprüfen können. Wenn die JVM abgestürzt ist, weil sie nicht über genügend Speicher verfügte, würde der Core Dump dies anzeigen. Es ist wichtig, dass jeder Administrator weiß, wie er die Einstellungen verwenden und die resultierende Core-Dump-Datei debuggen kann. Zunächst werden wir uns ansehen, wie man einen Java-Core-Dump erzeugt, und dann werden wir uns ansehen, wie man Core-Dumps analysiert.

Wie man Java-Kerndumpdateien erzeugt

Anfordern eines Java-Kerndumps mit Jython

Es gibt mehrere Möglichkeiten, Core Dumps zu erzeugen. Zunächst werden wir ein einfaches Jython-Skript erstellen, das wir ausführen können, um Java-Core-Dump-Informationen zu erzeugen.
Erstellen Sie auf Ihrem Linux-System eine Datei namens threadDump.py und fügen Sie die
den folgenden Code:

jvmObject = AdminControl.completeObjectName("type=JVM,process=s
erver1,*" )
AdminControl.invoke(jvmObject, "dumpThreads" )
<was_profile_root>/wsadmin.sh -lang jython –f <path_to_file>/
threadDump.py

Anfordern eines Heap-Dumps mit JythonJV


Wenn wir das Skript wie folgt ändern, können wir stattdessen den Heap-Dump erhalten:

jvmObject = AdminControl.completeObjectName("type=JVM,process=serv
er1,*" )
AdminControl.invoke(jvmObject, "generateHeapDump" )

Abfrage mit dem Befehl kill -3

Dieses Signal wird gesendet, wenn ein kill -3-Befehl gegen den JVM-Prozess ausgegeben wird. Dieses Signal beendet normalerweise nicht den JVM-Prozess. Es erzeugt einen Thread-Dump (Java-Core) zur Diagnose eines potenziell hängenden JVM-Prozesses.

Es empfiehlt sich, eine Reihe von Java-Core-Dateien zu erstellen, so dass Sie den Befehl in einer Folge von 60 Sekunden ausführen müssen.

Eine Antwort

  1. Wie können wir diesen Prozess automatisieren? Ich muss Thread-Dumps erzeugen, wenn etwas mit der JVM nicht in Ordnung ist, um sie zu analysieren.

Eine Antwort hinterlassen

Newsletter für Tech-Experten

Signal, kein Rauschen –

direkt in Ihren Posteingang.

Schließen Sie sich mehr als 12.000 Ingenieuren und Führungskräften aus der Wirtschaft an, die Praxisberichte zu SRE, DevOps und Cloud-nativer Zuverlässigkeit erhalten.

Tech-Blogs mit tiefgehenden Einblicken und Fallstudien
Neue Technologien, sorgfältig ausgewählt

Ihre geschäftliche E-Mail-Adresse

Wir gehen respektvoll mit Ihrem Posteingang um. Lesen Sie unsere Datenschutzerklärung.

Mehr Beiträge

Jeder Anbieter von Observability-Lösungen hat mittlerweile etwas im Angebot, das als „AI SRE“ bezeichnet wird. Cloud-Anbieter haben eines. Plattformen für das Incident-Management haben eines. Ihr Monitoring-Tool hat wahrscheinlich im letzten Quartal eines hinzugefügt. Die Frage für die meisten...
Lesen
AI SRE Agent: Die ersten 20 Minuten eines Vorfalls automatisieren Es ist 3 Uhr morgens. Ein Alarm wird ausgelöst. Sie klappen Ihren Laptop auf, und die nächsten zwanzig Minuten verlaufen wie immer...
Lesen
Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.