Show TOC

FunktionsdokumentationThread-Dump-Analyse Dieses Dokument in der Navigationsstruktur finden

 

Die im Diagnosewerkzeug des SAP Solution Manager enthaltene Komponente Thread Dump Analysis kann zum zentralen Auslösen und Einplanen der Erzeugung JVM-basierter Thread-Dumps für einen bestimmten oder alle J2EE-Knoten genutzt werden. Das Erfassen und Übertragen der erzeugten Thread-Dumps und die Analyse der Thread-Dump-Daten erfolgt über ein entsprechendes Fenster auf der Benutzeroberfläche.

Ein Thread-Dump ist eine Momentaufnahme des Zustands sämtlicher Java-Threads. Die JVM ist für die Zuweisung und die Freigabe von Speicherplatz für Java-Anwendungen zuständig. Der Speicherplatz wird über spezielle Funktionen mit der Bezeichnung Garbage Collections (GC) verwaltet, die Bestandteil der JVM sind. Es gibt Garbage Collections vom Typ regular und vom Typ full. Diese sammeln den von Java-Anwendungen nicht mehr genutzten Speicherplatz und stellen ihn wieder im Heap zur Verfügung.

Voraussetzungen

  • Vergewissern Sie sich, dass die Option -Xrs in der Datei instance.properties der JVM nicht gesetzt ist.

  • Um einen Thread-Dump aus einer hochgeladenen Datei zu analysieren, müssen Sie den Thread-Dump manuell im Quellsystem erzeugen.

Aktivitäten

Mithilfe der Komponente Thread Dump Analysis können Sie die Anzahl der verwendeten Threads ermitteln und anzeigen, zu welcher Methode diese gehören und welche Aufgabe sie ausführen. Über einen vollständigen Thread-Dump wird die Java Virtual Machine zur Erstellung einer Momentaufnahme ihres aktuellen Zustands aufgefordert.

Führen Sie im Navigationsbereich Offline Tools des Work Center Root Cause Analysis die einzelnen Schritte der im Folgenden aufgeführten Aufgaben aus:

1.) Vollständige Thread-Dumps für alle Knoten erzeugen:
  1. Wählen Sie im Navigationsbereich Offline Tools die Option Thread Dump Analysis.

  2. Im Bereich Select J2EE Nodes wählen Sie alle aufgeführten Knoten aus und wählen Trigger Dump.

2.) Vollständige Thread-Dumps für ausgewählte Knoten erzeugen:
  1. Wählen Sie im Navigationsbereich Offline Tools die Option Thread Dump Analysis.

  2. Im Bereich Select J2EE Nodes wählen Sie die gewünschten Knoten aus.

  3. Wählen Sie anschließend Trigger Dump.

3.) Vollständige Thread-Dumps in bestimmten Intervallen erzeugen:
  1. Wählen Sie im Navigationsbereich Offline Tools die Option Thread Dump Analysis.

  2. Im Bereich Trigger a Series of Full Thread Dumps definieren Sie ein Zeitintervall und die gewünschte Anzahl von Dumps für die wiederholte Erzeugung von Thread-Dumps.

  3. Wählen Sie anschließend Start now.

4.) Vollständige Thread-Dumps für ausgewählte Knoten analysieren:
  1. Wählen Sie im Navigationsbereich Offline Tools die Option Thread Dump Analysis.

  2. Im Bereich Select J2EE Nodes wählen Sie die gewünschten Knoten aus.

  3. Wählen Sie anschließend Trigger Dumps. Wenn die Dumps verfügbar sind, wählen Sie Analyze.

5.) Vollständige Thread-Dumps für eine hochgeladene Datei analysieren:
  1. Wählen Sie im Navigationsbereich Offline Tools die Option Thread Dump Analysis.

  2. Im Bereich Upload files wählen Sie Browse, um eine Thread-Dump-Datei auszuwählen.

  3. Wählen Sie Analyze.

Struktur

Die Optionen der Thread Dump Analysis werden in unterschiedlichen Fensterbereichen angezeigt:

Option

Beschreibung und Verwendung

Select J2EE Nodes

  • Über diese Option wählen Sie die Knoten aus, für die Sie einen Thread-Dump erzeugen möchten.

  • Drucktaste Trigger dump

  • Drucktaste Analyze dump

Trigger a Series of Full Thread Dumps

  • Intervall (in Sekunden)

  • Anzahl der Dumps, die Sie analysieren möchten

  • Drucktaste Start analyze

  • Eine Einplaner-Vorlage vorbereiten

Upload File

  • Nach Dump-Datei suchen

  • Drucktaste Upload

Self Test

  • Über diese Option erzeugen Sie einen Dump für alle J2EE-Knoten in sämtlichen Lösungen/Landschaften/Produkten und prüfen, ob die Dumps in den Konsolenprotokollen erfasst werden.

Ergebnisse

Nachdem die Erzeugung eines Thread-Dump ausgelöst wurde, wählen Sie Analyze, um den Inhalt und das Ergebnis des Dump anzuzeigen. In einem neuen Fenster wird eine Tabelle mit mehreren Registerkarten und Optionen angezeigt:

Titel der Registerkarte

Beschreibung und Verwendung

Summary

Auf dieser Registerkarte können Sie verschiedene Thread-Dumps miteinander vergleichen. Sofern Thread-Dumps erzeugt wurden, wird für jeden Cluster-Knoten die entsprechende Protokolldatei angezeigt.

Die Übersichtsanalyse liest die Konsolenprotokolle der ausgewählten Komponenten und zeigt diese auf einer Registerkarte an. Die Struktur der Übersichtstabelle ist nicht von der ausgewählten J2EE-Knoten-ID abhängig. Die Drucktaste Restart kann nicht betätigt werden. Wenn ein Dump einen Deadlock enthält, wird dies ebenfalls in der Übersicht angezeigt.

Wenn Sie auf einen der Thread-Dumps klicken, wird die Tabelle mit der Bezeichnung Single Dump Table angezeigt. Die Tabelle enthält folgende Spalten:

  • Timestamp

  • Dispatcher

  • Server

All Dumps

Auf dieser Registerkarte werden alle Thread-Dumps für die ausgewählte J2EE-Knoten-ID angezeigt. Hier haben Sie die Möglichkeit, eine große Anzahl Thread-Dumps gleichzeitig miteinander zu vergleichen und so sämtliche Veränderungen nachzuvollziehen. Darüber hinaus können Sie die Thread-Dumps zur Durchführung einer Offline-Analyse herunterladen.

Die Tabelle enthält folgende Spalten:

  • Filter Threads by Application, KM, Anonymous or System

  • Group Prefix

  • Thread State – (Hier sind Kenntnisse der Zustände von Java-Threads erforderlich)

  • Erste Stackzeile mit Bezeichnung non-java.*

  • Total Count

  • 1 bis N – je nach Anzahl der vorhandenen Threads (Hier klicken, um die Details zu den Threads anzuzeigen)

Single Dump

Über diese Registerkarte können Sie den Zustand von JVM-Threads ermitteln und Deadlocks jeder Art identifizieren. Sie können die Thread-Dumps nach Namen, nach der Gesamtzahl der Threads, nach Thread-Bedingungen und nach dem Zustand der Threads gruppiert anzeigen.

Zum Filtern der Tabelleninhalte stehen folgende Optionen zur Verfügung:

  • Dump Number

  • Filter Threads

Die Tabelle enthält folgende Spalten:

  • Group Name

  • Total (Hier klicken, um die Details zu den Threads anzuzeigen)

  • Waiting on Condition

  • Runnable

  • In Object.wait()

Threads Detail

Auf dieser Registerkarte werden die Details zum ausgewählten Thread-Dump angezeigt, wie z. B. die native Thread-ID, die Bedingung der einzelnen Threads sowie ein vollständiger Stacktrace zu jedem Thread.

Memory Garbage Collection

Auf dieser Registerkarte wird eine Analyse der während der Erzeugung eines Thread-Dump durchgeführten Garbage Collections angezeigt. Hier sind allgemeine Kenntnisse der JVM-Speicherverwaltung erforderlich.

Mit diesem Werkzeug können Sie das Verhalten der Garbage Collection in grafischer Form anzeigen.

Auf dieser Seite werden drei Tabellen angezeigt, die folgende Spalten enthalten:

  • Time Frame

    • Time Frame

    • GC Type

  • Statistics

    • Start time

    • End time

    • Up Time

    • % GC Time

  • VM Parameters

    • GC Type

    • Count

    • Total Duration

    • Average Duration

    • Total Recycled Bytes

    • Average Recycled Bytes

Customer Code

Alle Threads aus dem Dump werden auf das Vorhandensein von Nicht-SAP-Standardpaketen überprüft. Wenn kundeneigene Threads gefunden werden, werden diese hier angezeigt. Durch Klicken auf einen der Threads zeigen Sie den Bericht Thread Details an.

Weitere Informationen

Die hier beschriebene Komponente Thread Dump Analysis ist auch Bestandteil der SAP XI Runtime Workbench.