1 Themenübersicht
Die Antwortzeiten eines Comarch-ERP-Enterprise-Systems bestimmen die Produktivität und Zufriedenheit der Benutzer entscheidend mit. Mithilfe der Leistungsmonitore können Sie Leistungsinformationen aufzeichnen, mit deren Hilfe die Antwortzeiten objektiv ausgewertet werden können. Die Analyse der Leistungsinformationen kann die Ursachen für unzureichende Antwortzeiten aufdecken.
Im Folgenden wir der effiziente Einsatz der Leistungsmonitore und die Auswertung der Leistungsinformationen beschrieben. Ein besonderer Schwerpunkt des Dokumentes liegt auf der Nutzung der Leistungsmonitore in Produktivsystemen.
2 Zielgruppe
- Administratoren
- Technische Berater
- Entwickler
3 Beschreibung
Die Antwortzeiten eines Produktivsystems sollten regelmäßig überwacht werden, um bei einer Verschlechterung der Antwortzeiten rechtzeitig Maßnahmen ergreifen zu können. Für den sicheren und dauerhaften Betrieb eines Comarch-ERP-Enterprise-Systems sollten die Antwortzeiten, wenn keine Probleme bekannt sind, in der Einführungsphase des Systems einmal pro Woche und später einmal pro Monat kontrolliert werden. Die Antwortzeiten können mit dem Standard-Datenbank-Leistungsmonitor überwacht werden.
Speichern Sie die Auswertungen der Leistungsinformationen zu Vergleichszwecken ab. Vergleichen Sie regelmäßig historische mit aktuellen Auswertungen. So können Sie eine negative Tendenz erkennen, bevor das Problem bei dem Kunden eskaliert.
Wenn die Antwortzeit des Systems nicht den Anforderungen genügt, müssen Sie Maßnahmen ergreifen, um die Ursachen für die ungenügenden Antwortzeiten zu finden. Die Leistungsmonitore und die daraus resultierenden Leistungsinformationen können Sie bei Suche nach den Ursachen entscheidend unterstützen.
Wenn ein System ungenügenden Antwortzeiten zeigt, gehen Sie wie folgt vor:
- Überprüfen sie die System-Konfiguration.
Abschnitt „System-Konfiguration überprüfen“
- Werten Sie den Standard-Datenbank-Leistungsmonitor aus.
Abschnitt „Standard-Datenbank-Leistungsmonitor auswerten“
- Legen Sie für die problematischen Anwendungen oder Berichte gezielt Datenbank-Leistungsmonitore an.
Abschnitt „Messung mit Datenbank-Leistungsmonitoren“
- Korrigieren Sie die gefundenen Probleme im Entwicklungssystem.
Abschnitt „Korrekturen am System“
- Testen Sie mithilfe der Datenbank-Leistungsmonitore im Testsystem, ob die Korrektur erfolgreich war.
Abschnitt „Messung mit Datenbank-Leistungsmonitoren“
- Übernehmen Sie die Korrektur in das Produktiv-System.
- Wiederholen Sie die Messung der problematischen Anwendungen oder Berichte gezielt Datenbank-Leistungsmonitore an.
Abschnitt „Messung mit Datenbank-Leistungsmonitoren“
- Überwachen Sie das System in kurzen Abständen, um weitere Probleme aufzudecken. Wiederholen Sie den Optimierungsprozess falls notwendig.
3.1 System-Konfiguration überprüfen
Prüfen Sie vor der Analyse eines Systems zunächst die System-Konfiguration. Das Dokument „Checkliste: System-Konfiguration“ beschreibt grundlegende Richtlinien für die Konfiguration eines Systems. Wenn beispielsweise die Prozesse auf einen der beteiligten Rechner mehr Speicher benötigen, als dieser Rechner an realem Hauptspeicher zur Verfügung hat, dann ist das System langsam. Dabei ist es unabhängig davon, ob der auf die Festplatten ausgelagerte Prozess eine Datenbank-Instanz oder ein Application-Server ist.
Da eine mangelhafte System-Konfiguration einen deutlichen Einfluss auf die Antwortzeiten eines Systems hat, ist die Überprüfung der System-Konfiguration daher ein unerlässlicher Schritt zur Optimierung jedes Systems.
Prüfen Sie, ob die Reorganisationsanwendung „Leistungsinformationen reorganisieren“ täglich ausgeführt wird. Sie können die Leistungsinformationen nur dann auswerten, wenn Sie einen Reorganisationsauftrag für diese Anwendung eingeplant haben.
Beachten Sie, dass die Anzahl von Threads pro Verarbeitungswartschlange die Belastung des Systems entscheidend beeinflusst. Weitere Informationen zu der Konfiguration von Verarbeitungswarteschlangen und Threads finden Sie in den Dokumenten „Systemcockpit Typ „Verarbeitungs-Warteschlange““ und „Systemcockpit Typ „Application Server““.
3.2 Leistungsinformationen
Leistungsmonitore zeichnen Leistungsinformationen auf, mit denen Sie zeitaufwendige Funktionen in einem System finden und die Ursachen für den Zeitverbrauch bestimmen können.
Beachten Sie bei der Auswertung der Leistungsinformationen, dass in vielen Unternehmen das Lastprofil häufig in Abhängigkeit vom Wochentag wechselt. Wenn Sie die Auswirkungen unterschiedlicher Lastprofile reduzieren wollen, sollten Sie daher immer mindestens die Leistungsinformationen einer Woche auswerten.
Beachten Sie, dass die in den Leistungsinformationen gemessene Zeit häufig in einer zentral genutzten Ressource (z.B. das Datenbanksystem) verbraucht wird. Da jede Ressource in einem digitalen System nur eine beschränkte Leistungsfähigkeit hat, kann die Überlastung einer Ressource die Antwortzeiten des gesamten Systems spürbar beeinträchtigen. Eine einzelne Funktion kann also durch übermäßige Nutzung einer zentralen Ressource, das gesamte System beeinträchtigen. Versuchen Sie daher zwischen den Funktionen, die die Überlastung verursachen und den Funktionen, die durch die Überlastung langsam geworden sind, zu unterscheiden. Es ist sehr wahrscheinlich, dass die Ursache für die Überlastung der zentralen Ressource in den 10 zeitaufwendigsten Funktionen enthalten ist.
In vielen Fällen entscheidet die Leistungsfähigkeit des Datenbanksystems über das Antwortverhalten der Application-Server. Wenn das Datenbanksystem überlastet ist, dann können auch einfache Datenbankzugriffe deutlich länger dauern als in einem normal belasteten System. Bei der Überlastung des Datenbanksystems müssen Sie daher die Anwendung oder den Bericht finden, der die Überlastung verursacht.
3.2.1 Standard-Datenbank-Leistungsmonitor auswerten
Der Standard-Datenbank-Leistungsmonitor zeichnet auf jedem System Leistungsinformationen auf. Mit diesen Leistungsinformationen können Sie die zeitaufwendigsten Funktionen in einem System bestimmen.
Subjektiver Eindruck der Benutzer
Befragen Sie vor jeder Performanceanalyse die Benutzer, die regelmäßig mit dem System arbeiten. Ermitteln Sie die Funktionen, deren ungenügenden Antwortzeiten als störend empfunden werden:
- Wenn nur einige wenige Aktionen in einzelnen Anwendungen als langsam beschrieben werden, dann kann dies auf ein isoliertes Problem in diesen Anwendungen hinweisen. Die betroffenen Anwendungen und Aktionen sollte im Folgenden genauer betrachtet werden.
- Wenn alle Aktionen unabhängig von der Anwendung als langsam und möglicherweise die Antwortzeiten des Systems als sehr schwanken beschrieben werden, dann ist das System als Ganzes überlastet. Suchen Sie die Ursache für die Überlastung und beginnen Sie dabei bei den Berichten, Belegen und Hintergrundanwendungen.
Auswertungen für interaktive Anwendungen
Führen Sie den Berichtsanwendung „Zeitaufwändige Aktionen sortiert nach Summe“ für die letzte Woche und mit Anzahl Ergebnisse gleich 10 aus. Vergleichen Sie die Ergebnisse mit dem subjektiven Eindruck der Benutzer.
Wenn die subjektiv als langsam empfunden Aktionen in den 10 zeitaufwendigsten Aktionen enthalten sind und sich somit objektiv durch Messungen belegen lassen, dann sollten Sie für diese Anwendungen und Aktionen weitere Leistungsinformationen aufzeichnen. Weitere Informationen sind in dem Abschnitt „Messung mit Datenbank-Leistungsmonitoren“ zu finden.
Wenn die subjektiv als langsam empfunden Aktionen nicht in den 10 zeitaufwendigsten Aktionen enthalten sind, dann bestehen Differenzen zwischen dem subjektiven Eindruck und den Messungen. Differenzen können sich beispielsweise wie folgt erklären:
- Die von Ihnen befragten Benutzer nutzen keinen repräsentativen Funktionsumfang.
- Die angesprochenen Aktionen sind zwar besonders störend, werden aber nur selten eingesetzt.
Auf jeden Fall sollten Sie versuchen, die Ursache für die Differenzen zwischen dem subjektiven Eindruck und den Leistungsinformationen zu klären.
Unabhängig davon sollten Sie die 10 zeitaufwendigsten Aktionen genauer betrachten. Diese Aktionen stellen die größte Belastung für das System dar. Beachten Sie dabei jedoch, dass in diesem Bericht auch Aktionen erscheinen, die eine gute Laufzeit haben, aber besonders häufig verwendet werden.
Beispiel:
In einem Unternehmen werden pro Tag 10.000 Vertriebsauftragspositionen erfasst. Das Hochschießen einer Position dauert durchschnittlich 0,5 Sekunden. Die Benutzer beschweren sich nicht über diese Aktion. Trotzdem wird die Aktion voraussichtlich im Bericht der in Summe zeitaufwendigsten Aktionen enthalten sein, da diese Aktion in Summe 5000 Sekunden gedauert hat.
Ausführungszeiten von mehr als 1-2 Sekunden werden vom Benutzer häufig als störend empfunden. Daher sollten Sie Aktionen mit einer durchschnittlichen Ausführungszeit von mehr als 2 Sekunden besonders beachten. Zeichnen Sie daher für diese Anwendungen und Aktionen weitere Leistungsinformationen auf. Weitere Informationen finden Sie in dem Abschnitt „Messung mit Datenbank-Leistungsmonitoren“.
Auswertungen für Hintergrundanwendungen
Hintergrundanwendungen können ein System sehr stark belasten. Wenn das gesamte System langsam ist und die Benutzer die Probleme nicht auf einzelne Aktionen beschränken können, sollten Sie die Hintergrundanwendungen prüfen.
Ermitteln Sie die in Summe zeitaufwendigsten Hintergrundanwendungen:
- Starten Sie die Anwendung „Systemcockpit“
- Laden Sie das System und wechseln Sie auf den Reiter „Leistungsinformationen“
- Stellen Sie die Dimensionen wie folgt ein:
Dimension | Einschränkung | Werte |
Operationen | „Einschränken“ | „Anwendungsaktion ausführen“ |
Zeiträume | „Einschränken“ | letzte Woche |
Application-Server | „Nicht verwenden“ | |
Actions | „Einschränken und Anzeigen“ | |
Anwendungen | „Einschränken und Anzeigen“ | |
Berichte | „Nicht verwenden“ | |
Session-Typen | „Einschränken“ | Hintergrundverarbeitung |
Datenbanken | „Nicht verwenden“ | |
Datenbankenanweisungen | „Nicht verwenden“ | |
Suchen | „Nicht verwenden“ |
- Sortieren Sie nach den folgenden Spalten:
- Summe der Ausführungszeiten
- Anwendung
- Aktion
- Speichern Sie ggf. die Einstellungen als Abfragemuster, um die Auswertung später wiederholen zu können
Die nach Summe 10 zeitaufwendigsten Hintergrundanwendungen haben das System am stärksten belastet. Hintergrundanwendungen, die vorwiegend außerhalb der Arbeitzeiten der interaktiven Benutzer laufen, können Sie unter Umständen ignorieren. Zeichnen Sie für die zeitaufwendigsten Hintergrundanwendungen weitere Leistungsinformationen auf. Weitere Informationen finden Sie in dem Abschnitt „Messung mit Datenbank-Leistungsmonitoren“.
Beachten Sie, dass die Belastung des Systems durch Verarbeitungsaufträge auch von der System-Konfiguration abhängt. Weitere Informationen zur System-Konfiguration finden Sie in dem Abschnitt „System-Konfiguration überprüfen“.
Auswertungen für Belege und Berichte
Berichte und Belege können einen sehr starken Einfluss auf die Gesamtbelastung des Systems haben. Insbesondere beim Adaptieren von Belegen können kleine Änderungen am Standardbeleg eine signifikante Erhöhung der Laufzeit zur Folge haben.
Führen Sie den Berichtsanwendung „Zeitaufwendige Berichte sortiert nach Summe“ für die letzte Woche und mit Anzahl Ergebnisse gleich 10 aus. Die zeitaufwendigsten Berichte belasten das System am stärksten, zeichnen Sie daher für diese Berichte weitere Leistungsinformationen auf. Weitere Informationen finden Sie in dem Abschnitt „Messung mit Datenbank-Leistungsmonitoren“.
3.2.2 Messung mit Datenbank-Leistungsmonitoren
Wenn Sie beispielsweise mit dem Standard-Datenbank-Leistungsmonitor die Anwendungen und Berichte bestimmt haben, die das System besonders stark belasten oder aber ungenügende Antwortzeiten haben, dann richten Sie für diese Datenbank-Leistungsmonitore zur vollständigen Analyse ein. Mit diesen Leistungsmonitoren werden unter anderem, die von diesen Anwendungen und Berichten ausgeführten Datenbankanweisungen aufgezeichnet.
Einrichtung von Leistungsmonitoren
Die Aufzeichnung der Datenbankanweisungen kann ihr System zusätzlich belasten. Die Antwortzeiten werden üblicherweise durch die zusätzlichen Leistungsmonitore zwischen 10-20% schlechter. Je nach Anwendungsfall kann die Beeinträchtigung jedoch höher oder niedriger sein. Sie sollten daher, wenn möglich, den Datenbank-Leistungsmonitor nur auf einen Application-Server einrichten. Wenn Sie nur wenige Anwendungen oder Berichte analysieren wollen, so legen Sie für jede Anwendung und jeden Bericht einen eigenen Datenbank-Leistungsmonitor an:
- Starten Sie die Anwendung „Leistungsmonitore“
- Legen Sie einen neuen Leistungsmonitor mit der Vorlage-Datei „DatabaseMonitor-FullAnalysis.xml“ an.
- Schränken Sie ggf. den Application-Server ein.
- Schränken Sie ggf. entweder die Anwendung oder den Bericht ein.
- Aktivieren Sie den Leistungsmonitor
Wenn die Beeinträchtigung der Antwortzeiten durch die zusätzlichen Leistungsmonitor zu groß ist, können Sie jeden zusätzlichen Leistungsmonitor jederzeit beenden. Ein beendeter Leistungsmonitor beeinträchtigt das System nicht.
Wenn der Arbeitsablauf eines Benutzers gemessen werden soll, dann schränken nur den Benutzer ein und nicht den Application-Server, die Anwendung oder den Bericht.
Für eine repräsentative Messung sollten Sie zusätzliche Leistungsmonitore mindestens einen ganzen Tag oder besser eine Woche laufen lassen. Werten Sie die Ergebnisse des Leistungsmonitors sofort nach dem Abschluss der Messung aus, da diese durch die Reorganisationsanwendung nach einer bestimmten Zeit zusammengefasst werden.
Auswertung der Leistungsinformationen
Das Ziel der Auswertung der zusätzlichen Leistungsmonitore ist, die Ursache für die ungenügende Antwortzeit einer Anwendung oder eines Berichts zu finden. Mit der Vorlage-Datei „DatabaseMonitor-FullAnalysis.xml“ wurden in den Leistungsmonitoren insbesondere auch die von Anwendungen oder Berichten ausgeführten Datenbankanweisungen aufgezeichnet. Die Anzahl der Ausführungen und die Laufzeit der Datenbankanweisungen sind für die Antwortzeiten meist entscheidend. Die Auswertung konzentriert sich daher auf die Datenbankanweisungen.
Führen Sie nach Abschluss der Messung die Berichte „Zeitaufwändige Datenbankanweisungen sortiert nach Summe“ für den zusätzlichen Leistungsmonitor aus. Verwenden Sie zur Auswertung von interaktive Anwendungen den Bericht „Zeitaufwändige Aktionen sortiert nach Summe“ und zur Auswertung von Berichten und Belegen den Bericht „Zeitaufwendige Berichte sortiert nach Summe“. Schränken Sie ggf. die Berichte auf, die für Sie interessanten Anwendungen oder Berichte ein. Speichern Sie die Ergebnisse für spätere Auswertungen ab.
Mit dem System-Cockpit können Sie die Leistungsinformationen dynamisch auswerten.
Ermitteln Sie die in Summe zeitaufwendigsten Datenbankanweisungen für eine Anwendung oder einen Bericht:
- Starten Sie die Anwendung „Systemcockpit“
- Laden Sie das System und wechseln Sie auf den Reiter „Leistungsinformationen“
- Stellen Sie die Dimensionen wie folgt ein:
Dimension | Einschränkung | Werte |
Operationen | „Einschränken“ | „Datenbankanweisung ausführen“ |
Zeiträume | „Einschränken“ | letzte Woche |
Application-Server | „Nicht verwenden“ | |
Actions | „Einschränken und Anzeigen“ | |
Anwendungen | „Einschränken und Anzeigen“ | Ggf. auf die betrachtete Anwendung einschränken. |
Berichte | „Einschränken und Anzeigen“ | Ggf. auf den betrachteten Bericht einschränken. |
Session-Typen | „Nicht verwenden“ | |
Datenbanken | „Nicht verwenden“ | |
Datenbankenanweisungen | „Nicht verwenden“ | |
Suchen | „Nicht verwenden“ |
- Sortieren Sie nach den folgenden Spalten:
- Summe der Ausführungszeiten
- Anwendung
- Aktion
- Bericht
- Speichern Sie ggf. die Einstellungen als Abfragemuster, um die Auswertung später wiederholen zu können
Die nach Summe 10 zeitaufwendigsten Datenbankanweisungen einer Anwendung oder eines Berichtes sind voraussichtlich für die ungenügende Antwortzeit verantwortlich. Prüfen Sie beginnend mit der zeitaufwendigsten Datenbankanweisung, ob und wie die Anwendung oder der Bericht optimiert werden kann.
Weitere Informationen finden Sie in dem Abschnitt „Korrekturen am System“.
3.3 Korrekturen am System
Das Ergebnis der Auswertung der Leistungsinformationen ist eine Menge von Datenbankanweisungen und die Anwendungen oder Berichte, in denen diese verwendet werden. Nutzen Sie diese Informationen zur Optimierung der Datenbankanweisungen, Anwendungen oder Berichte.
3.3.1 Optimierung einzelner Datenbankanweisungen
Wenn einzelne Datenbankanweisungen das Datenbanksystem stark belasten, können dadurch die Antwortzeiten des gesamten Systems beeinträchtigt werden. Entscheidend für die Belastung des Datenbanksystems ist die Gesamtbelastung durch die Datenbankanweisung. Die Gesamtbelastung wird entscheidend durch die Ausführungszeit und die Ausführungshäufigkeit der Datenbankanweisung bestimmt.
Datenbankanweisungen mit langer Ausführungszeit
Wenn die Datenbankanweisung eine lange Ausführungszeit (z.B. durchschnittlich mehr als 0,1 Sekunden) hat, prüfen Sie, ob Sie die Ausführungszeit durch die Anlage eines Indexes verbessern können. Nutzen Sie Werkzeuge der Datenbankmangementsysteme, die Ihnen mit Hilfe des Ausführungsplans der Datenbankanweisung Vorschläge für Indexe erstellen können. Erstellen sie Indexe mit der Anwendung „Individuelle Indexe“. Weitere Informationen zu Indexen und individuellen Indexen finden Sie in den Dokumenten „Leistungsoptimierung“ und „Individuelle Indexe“.
Wenn Sie durch die Anlage eines Indexes keine oder nur eine unzureichende Verbesserung erreichen können, müssen Sie die Datenbankanweisung vereinfachen. Passen Sie hierzu die Anwendung oder den Bericht an, der die Datenbankanweisung verwendet.
Datenbankanweisungen mit kurzer Ausführungszeit
Wenn die Datenbankanweisung eine kurze Ausführungszeit (z.B. weniger als 0,1 Sekunden) hat, aber sehr häufig ausgeführt wird, dann müssen Sie auf jeden Fall die Anwendung oder den Bericht korrigieren, so dass die Datenbankanweisung weniger häufig ausgeführt wird.
Datenbankanweisungen in Anwendungen finden
Durch die Leistungsinformationen ist bekannt, durch welche Anwendung und bei welcher Aktion die Datenbankanweisung ausgeführt wurde. Diese beiden Informationen schränken die zu betrachtenden Java-Klassen deutlich ein. Weitere Informationen zum Lokalisieren von Datenbankanweisungen in Anwendungen finden Sie im Dokument „Leistungsoptimierung“ im Abschnitt „Datenbankanweisungen in Anwendungen finden“.
3.3.2 Optimierung von Anwendungen und Berichten
Nutzen Sie zur Optimierung die erstellten Leistungsinformationen. In dem Dokument „Leistungsoptimierung“ wird der Optimierungsprozess für Anwendungen beschrieben. Das Dokument „Berichte mit Crystal Reports entwickeln“ gibt Ihnen Hinweise zur Optimierung von Berichten.