Show TOC

VorgehensweisePerformance mit der ABAP-Laufzeitanalyse analysieren Dieses Dokument in der Navigationsstruktur finden

Vorgehensweise

Mit der ABAP-Laufzeitanalyse können Sie die Performance Ihrer ABAP-Anwendungen messen.

Mit der Laufzeitanalyse können Sie auch Performance-Probleme analysieren, indem Sie herausfinden, wo Laufzeit und Speicher verbraucht werden, und indem Sie Engpässe in Ihrem Quelltext identifizieren.

In diesem Abschnitt wird beschrieben, wie Sie eine Performance-Analyse durchführen.

Eine Performance-Analyse mit der Laufzeitanalyse durchführen

Eine Performance-Analyse beginnt normalerweise mit der Beobachtung, dass ein bestimmtes Feature eines Programms nicht so schnell läuft wie gedacht.

Wichtiger Hinweis: Läuft Ihr System generell langsam, wird die Analyse eines Programms mit der Laufzeitanalyse nicht viel nützen. Die folgenden Transaktionen:

  • RZ20 (CCMS-Alert-Monitor)

  • ST03 (Systemlastmonitor)

  • ST04 (Datenbankmonitor)

  • ST05 (Performance-Analyse)

  • ST06 (Betriebssystemmonitor)

sollten Sie zur Diagnose eines systemweiten Problems mit Ihrer NetWeaver-Installation verwenden.

Aber angenommen Sie haben bei Ihrer Überwachung festgestellt, dass die durchschnittliche Antwortzeit einer Transaktion zu lang ist. Oder Ihre Benutzer haben sich über langsam laufende Programme oder Transaktionen beschwert. Oder Sie haben gerade direkt im System festgestellt, dass ein bestimmtes Programm-Feature nur langsam antwortet.

Ein solches Performance-Problem müssen Sie mit einem speziellen Programm oder einer speziellen Transaktion untersuchen.

  1. Starten Sie die ABAP-Laufzeitanalyse, indem Sie entweder den Transaktionscode SAT eingeben oder   System   Hilfsmittel   Laufzeitanalyse   Ausführen   wählen.

  2. Geben Sie eine Variante an, bei der die Aggregation auf Pro Aufrufstelle gesetzt ist.

    Die daraus folgende 'ABAP-Trace'-Messung aggregiert Trace-Ereignisse, die auf der gleichen Stufe in der Aufrufhierarchie auftreten. Zum Beispiel wird aus zehn Aufrufen eines Funktionsbausteins innerhalb einer Schleife ein einziger Trace-Satz. Der Satz zeigt 10 Treffer für Funktionsbaustein X mit kumulierter Laufzeit Y.

    Starten Sie mit einem aggregierten Trace, wenn Sie ein Performance-Problem analysieren. Sie benötigen nicht alle Details der Programmausführung; Sie müssen nur erkennen, welche Anweisungen und Prozeduren viel Laufzeit benötigen.

    Optional können Sie das Trace selbst ein- bzw. ausschalten. Diese Einstellung in der Variante bietet sich an, wenn Sie den Teil eines interaktiv gestarteten Programms oder einer Transaktion kennen, für den Sie ein Trace erstellen möchten. Sie können das Trace dann auf den entsprechenden Programm- bzw. Transaktionsteil einschränken.

  3. Starten Sie den Trace mit einer der Messmethoden.

  4. Zeigen Sie den Trace über die Registerkarte Auswerten in der Transaktion SAT an, falls er nicht automatisch angezeigt wird.

    Sie gelangen auf die Registerkarte Desktop 1. Dieses Desktop ist standardmäßig mit den Werkzeugen Profil und Hitliste ausgerüstet, die zur Analyse von Performance-Problemen bestens geeignet sind.

  5. Verwenden Sie das Werkzeug Hitliste, um nach auffälligen Konsumenten von Laufzeit zu suchen.

    Die Hitliste ist standardmäßig nach Nettolaufzeit sortiert. Dies ist die aggregierte Zeit für eine bestimmte Operation. Die Nettolaufzeit umfasst nicht die Zeit, die zum Aufruf von anderen, einem Trace unterzogenen Operationen verwendet wird.

    Bei einem Blick auf die Hitliste ergeben sich folgende Fragen:

    • Gibt es Einträge in der Hitliste, die als Konsumenten von Nettolaufzeit auffallen? Wenn ja, dann verbraucht Ihr Programm dort seine Laufzeit.

      Wählen Sie einen Eintrag per Doppelklick aus, um den darunterliegenden Quelltext anzuschauen.

    • Verzeichnen die auffälligen Einträge viele Treffer? Die Anzal der Treffer kennzeichnet die Operation. Die Laufzeitanalyse aggregiert nur Trace-Ereignisse, wenn sie auf der gleichen Stufe in der Aufrufhierarchie auftreten.

      Eine große Anzahl von Treffern bedeutet daher, dass das Programm eine Verarbeitung oft wiederholt. Vielleicht verarbeitet es Sätze aus einer Tabelle oder einer anderen Datenquelle. Überprüfen Sie, ob die Strategie oder die Implementierung der Massenverarbeitung optimiert werden kann.

      Eine kleine Anzahl von Treffern bedeutet, dass Sie Probleme mit einzelnen Operationen, wie Datenbankzugriffen oder Remote-Aufrufen, haben. Eine technische Lösung, wie das Hinzufügen eines Index zu einer Tabelle, kann hier von Nöten sein. Oder Sie müssen Ihre Analyse auf System- oder Netzwerkprobleme konzentrieren, falls das Problem auf langen Latenzzeiten in Remote-Aufrufen beruht.

  6. Verwenden Sie das Werkzeug Profil, um Ihre Performance-Daten aus unterschiedlichen Blickwinkeln auszuwerten.

    Mit dem Werkzeug Profil können Sie die Performance-Daten in einer Messung nach verschiedenen Dimensionen sortieren. Das Betrachten der Daten aus unterschiedlichen Blickwinkeln kann Ihnen dabei helfen Performance-Probleme zu finden und zu kategorisieren.

    Ändern Sie die Perspektive, indem Sie Andere Hierarchie (Andere Hierarchie) aus der Symbolleiste des Werkzeugs Profil wählen.

    Zum Analysieren der Einträge gibt es zwei hilfreiche Techniken:

    • Perspektiven kombinieren. Wählen Sie einen Eintrag aus. Öffnen Sie aus dem Kontextmenü des Eintrags den Eintrag in einer anderen Perspektive.

      Beispiel: Wählen Sie einen Programmeintrag aus. Wählen Sie dann Trace-Ereignisse expandieren aus dem Kontextmenü. Die Laufzeitanalyse zeigt die Verteilung der Trace-Ereignisse an, die für das Programm aufgezeichnet wurden.

      Beispiel: In der Sicht Paket verwenden Sie Programme expandieren aus dem Kontextmenü, um die Verteilung der Trace-Ereignisse über die Programme in dem Paket anzuzeigen.

    • Trace-Einträge in den Werkzeugen Hitliste oder Zeiten anzeigen. Wählen Sie einen Eintrag aus. Im Kontextmenü des Eintrags wählen Sie Teilbereich im Hitlisten-Werkzeug anzeigen oder Teilbereich im Zeiten-Werkzeug anzeigen.

      Die Laufzeitanalyse zeigt nur die Trace-Einträge an, die zu dem Eintrag Profil gehören.

      Beispiel: Sie können in dem Werkzeug Hitliste oder Zeiten filtern, so dass nur die Aktivitäten in einem bestimmten Programm angezeigt werden.

    Dies sind die nützlichsten Sichten, zusammen mit einigen Fragen, die beim Blick auf die Daten aus jeder einzelnen Perspektive auftreten können.

    • Die Sicht Trace-Ereignisse sortiert die Trace-Ereignisse gemäß der Auswahl, die Sie in der Variante auf der Registerkarte Anweisungen getroffen haben.

      Fallen bestimmte Kategorien von Trace-Ereignissen als Laufzeitkonsumenten auf? Wenn ja, öffnen Sie die Unterhierarchien. Fallen bestimmte Unterkategorien als Laufzeitkonsumenten auf?

      Übliche Verdächtige: Viel verbrauchte Zeit in externen Verarbeitungsblöcken lässt vermuten, dass RFC-Aufrufe, GUI-Navigationen, HTTP-Aufrufe und dergleichen Ihr Programm verlangsamen.

      Verbrauchte Zeit bei externen Datenzugriffen lässt vermuten, dass Datenbankoperationen zu lange dauern.

    • Die Sicht Pakete sortiert Trace-Ereignisse nach Entwicklungspaketen. Sie können sehen, welche Pakete in der Messung erscheinen.

      Fallen Ihre eigenen Entwicklungspakete als Laufzeitbenutzer auf? Dann müssen Sie nach einem Performance-Problem in den eigenen Paketen suchen.

      Welche Programme in auffallenden Entwicklungspaketen benötigen viel Laufzeit? Wählen Sie Programme expandieren aus dem Kontextmenü.

      Welche Trace-Ereignisse in diesen Programmen benötigen viel Laufzeit? Wählen Sie aus dem Kontextmenü Trace-Ereignisse expandieren.

    • Mit der Sicht SLAD-Objektmengen können Sie die Ergebnisse nach einer Objektmenge filtern, die Sie im Layer Aware Debugging (Transaktion SLAD) definiert haben.

      Verwenden Sie eine SLAD-Objektmenge, um sich nur auf eine bestimmte Menge von Objekten zu konzentrierenn — zum Beispiel auf Ihren eigenen Quelltext.

In der Praxis sind Performance-Probleme oft diffus und auf mehrere Faktoren zurückzuführen und deshalb auch schwierig zu analysieren.

Ohne die von der Laufzeitanalyse angebotenen Daten und Analysewerkzeuge wäre die Analyse von Performance-Problemen jedoch noch viel schwieriger oder sogar unmöglich. Die Laufzeitanalyse misst die Performance und liefert Ihnen hilfreiche Werkzeuge, um mit diesen Daten zu arbeiten. Sie ist ein wesentlicher Ausgangspunkt für jede Performance-Analyse.

Probieren Sie es aus: Analyse eines beobachteten Performance-Problems

Im Object Navigator (Transaktion SE80) der ABAP Workbench kann das Expandieren des Entwicklungspakets BASIS länger dauern als erwartet. Es kann bis zu zwei Sekunden dauern bis sich die zweite Stufe der BASIS-Hierarchie öffnet.

Diese kleine Performance-Problem bietet ein gutes Beispiel für eine Performance-Analyse in der Praxis.

Um die verbesserungsfähige Performance zu analysieren, wenden Sie das obige Verfahren auf die folgende Funktion an.

  1. Starten Sie die Transaktion SE80 mit der Methode Trace im Dialog ausführen der Transaktion SAT.

    Verwenden Sie eine Variante, in der Sie die Option Explizites Ein- und Ausschalten der Messung ausgewählt haben.

  2. Setzen Sie die Auswahlfelder auf der linken Seite auf Paket und BASIS.

  3. Schalten Sie den Trace ein, messen Sie die Operation Alle Knoten expandieren (Drucktaste in der Anwendungsfunktionsleiste), und schalten Sie den Trace wieder aus.

  4. Zeigen Sie den Trace an.

Tipps zur Durchführung der Analyse:

  • Die Sicht Paket in dem Werkzeug Profil ist ein guter Ausgangspunkt für diese Analyse.

    Wenn Sie über eine WAN-Verbindung mit hoher Latenzzeit arbeiten, erscheint Ihnen womöglich das Paket SOLE als das Paket mit dem höchsten Laufzeitverbrauch unter dem Paket BASIS. Sie können dieses Paket ignorieren: Es gibt einfach nur die hohen Latenzzeiten bei der Kommunikation zwischen SAPGUI-Client und Backend-System wieder.

    Das für die Analyse interessante Paket heisst SEU.

  • Versuchen Sie herauszufinden, wie sich die Laufzeit von SEU auf die Programme in SEU verteilt und dann, wie sich die Trace-Ergebnisse über diese Programme verteilen. Möglicherweise fällt eine LOOP AT-Operation in einem bestimmten Programm auf.

  • Wahrscheinlich trägt eine geschachtelte Schleifenkonstruktion im Quelltext der Funktion zu der verbesserungswürdigen Performance bei. Versuchen Sie mit der Laufzeitanalyse eine solche Konstruktion ausfindig zu machen.