Das Leistungsprotokoll enthält Details dazu, wie lange die Ausführung eines Auftrags oder Dienstes dauert. Es enthält auch allgemeine Leistungsinformationen zum Auftrag oder Dienst sowie Leistungsinformationen zu jedem Schritt im Datenfluss des Auftrags oder Dienstes. Mithilfe dieser Informationen können Sie Engpässe in Ihrem Datenfluss identifizieren, indem Sie sich Ausführungszeit und Verarbeitungszeit jedes Schrittes ansehen. Ein großer Unterschied zwischen Ausführungszeit und Verarbeitungszeit bedeutet, dass der Schritt einige Zeit auf Daten von vorher auszuführenden Schritten wartet. Dies kann darauf hinweisen, dass ein Schritt, der vorher auszuführen ist, einen Engpass im Datenfluss darstellt. Beachten Sie, dass bei Datenladungen ein großer Unterschied zwischen Ausführungszeit und Verarbeitungszeit nicht notwendigerweise ein Leistungsproblem anzeigt, da Datenladungen typischerweise auf die ersten Datensätze vom Rest des Datenflusses warten müssen.
Um Leistungsüberwachung für einen Auftrag oder Dienst zu aktivieren, verwenden Sie den Befehl performancemonitor enabled set in der Administrationsumgebung.
Das Leistungsprotokoll befindet sich auf Ihrem Spectrum Technology Platform-Server an folgendem Speicherort:
SpectrumDirectory\server\logs\performance.log
Das Leistungsprotokoll enthält eine Zeile für jede Ausführung eines überwachten Auftrags oder Dienstes. Es handelt sich um ein rotierendes Protokoll mit maximal fünf Dateien. Jede Datei ist auf eine Größe von 10 MB begrenzt. Sobald dieses Limit erreicht ist, werden die ältesten Leistungsdaten gelöscht, wenn neue Leistungsdaten protokolliert werden.
appender
-Einstellungen in der logback.xml-Konfigurationsdatei angegeben. Weitere Informationen finden Sie unter Logback-Konfigurationsdatei.Jeder Eintrag im Leistungsprotokoll enthält folgende Informationen. Um hier das Lesen zu erleichtern, wurden Zeilenumbrüche und Einzüge eingefügt. Im tatsächlichen Protokoll erstreckt sich der Eintrag über eine Zeile.
Date Time [performance] { "username":"UserName", "dataflowId":"DataflowName", "runMode":"BatchOrRealTime", "elapsedTime":Nanoseconds, "stageInfo":[ { "stageName":"Name", "stageLabel":"Label", "options":{ OptionsList }, "recordsRead":Count, "recordsWritten":Count, "executionTime":Nanoseconds, "processingTime":Nanoseconds "readBlockingTime":Nanoseconds "writeBlockingTime":Nanoseconds "readBlockingPercent":Percentage "writeBlockingPercent":Percentage } ] }
Wo:
- username
- Dies ist der Benutzer, der den Auftrag oder Dienst ausgeführt hat.
- dataflowID
- Dies ist der Name des Dienstes oder Auftrags, wie er im Spectrum Enterprise Designer definiert ist.
- runMode
- Dies zeigt an, ob sich der Eintrag auf einen Auftrag oder einen Dienst bezieht. Zur Auswahl stehen:
- Batch
- Der Protokolleintrag bezieht sich auf einen Auftrag.
- RealTime
- Der Protokolleintrag bezieht sich auf einen Dienst.
- elapsedTime
- Die Zeit in Nanosekunden, die die Ausführung des Auftrags oder der Dienstanforderung gedauert hat.
- stageInfo
- Listet Laufzeitinformationen für jeden Schritt im Datenfluss auf. Für jeden Schritt werden folgende Informationen aufgeführt:
- stageName
- Dies ist der permanente Name des Schrittes.
- stageLabel
- Dies ist der benutzerdefinierte Name des Schrittes. Die Schrittbeschriftung wird auf der Arbeitsfläche im Spectrum Enterprise Designer angezeigt.
- options
- Wenn zur Laufzeit irgendwelche Optionen angegeben wurden, werden die Optionen und ihre Einstellungen hier aufgelistet.
- recordsRead
- Dies ist die Gesamtzahl an Datensätzen, die über alle Eingabeports des Schrittes in den Schritt weitergeleitet wurden.
- recordsWritten
- Dies ist die Gesamtzahl an Datensätzen, die den Schritt an alle seine Ausgabeports geschrieben hat.
- executiontime
- Dies ist die Zeitspanne von der Verarbeitung des ersten Datensatzes bis zu Verarbeitung des letzten Datensatzes durch den Schritt. Hier ist auch die Zeit enthalten, die der Schritt inaktiv war, während er auf Daten von andern Schritten im Datenfluss gewartet hat.
- processingtime
- Dies ist die Zeitspanne, in der der Schritt Datensätze aktiv verarbeitet hat. Die Zeit, in der er inaktiv war und auf Daten von anderen Schritten im Datenfluss gewartet hat, ist nicht enthalten.
- readBlockingTime
- Die Dauer der Blockierung, während auf das Lesen des nächsten Datensatzes gewartet wird. Eine lange Leseblockierung bedeutet, dass ein früherer Vorgang länger als dieser Schritt dauert und möglicherweise eine zusätzliche Abstimmung erforderlich ist.
- writeBlockingTime
- Die Dauer der Blockierung, während auf das Schreiben des nächsten Datensatzes gewartet wird. Eine lange Schreibblockierung bedeutet, dass ein früherer Vorgang länger als dieser Schritt dauert und möglicherweise eine zusätzliche Abstimmung erforderlich ist.
- readBlockingPercent
- Der Prozentsatz der gesamten Ausführungszeit, die ein Schritt beim Lesen eines Datensatzes blockiert hat.
- writeBlockingPercent
- Der Prozentsatz der gesamten Ausführungszeit, die ein Schritt beim Schreiben eines Datensatzes blockiert hat.