Library

Wie analysiert man Firebird-Traces mit IBSurgeon Performance Analysis?

Bitte beachten Sie: Das Tracing ist sicher und kann in der Produktion gestartet werden. Bei Verwendung der unten empfohlenen Konfiguration wird die Leistung nicht beeinträchtigt.

Tracing für Firebird 5.0, 4.0 und 3.0

Schritt 1 - Konfigurationsdatei

Kopieren Sie die folgende Konfiguration in die Datei fbtrace30.conf, oder laden Sie die fertige Datei hier herunter.
database
{
	enabled = true
	time_threshold = 100
	log_connections = true
	log_statement_finish = true
	log_errors = true
	log_initfini = false
	print_plan = true
	#explain_plan = false
	print_perf = true
	max_sql_length = 65000
	max_arg_length = 240
	max_arg_count = 50
}
Speichern Sie die Datei in einem Ordner ohne Leerzeichen, zum Beispiel C:\temp\fbtrace30.conf oder /opt/fbtrace30.conf

Schritt 2 - Konfiguration testen

Führen Sie fbtracemgr aus, um zu überprüfen, ob die Konfiguration funktioniert:

Windows

Öffnen Sie die Eingabeaufforderung (cmd.exe), wechseln Sie in den Firebird-Ordner (dies kann C:\Program Files\Firebird\Firebird_3_0\ oder C:\HQbird\Firebird30 sein) und führen Sie aus (verwenden Sie Ihr tatsächliches SYSDBA-Passwort anstelle von masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf

Linux

Öffnen Sie das Terminal und führen Sie fbtracemgr aus dem Firebird-bin-Ordner aus (/opt/firebird/bin oder /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf   
Als Ergebnis sehen Sie die Ausgabe in der Eingabeaufforderung, etwa so
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
        C:\HQBIRD\FIREBIRD30\SECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Beenden Sie das Tracing mit Strg-C (und dann Enter, falls erforderlich).

Schritt 3 - Log sammeln

Wenn Sie im vorherigen Schritt keine Fehler sehen, starten Sie das Tracing, um die Ausgabe in die Protokolldatei zu sammeln, im Beispiel c:\temp\log1.log:

Windows

fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log

Linux

./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf > log1.log  
Lassen Sie es laufen, um die problematischen SQL-Abfragen eine Weile zu erfassen (minimum 3-4 Minuten, empfohlen ist 1 Stunde), und unterbrechen Sie dann fbtracemgr mit Strg-C.

Schritt 4. Logs hochladen

Laden Sie die resultierende Protokolldatei zur Trace-Visualisierung auf cc.ib-aid.com hoch.
Bitte beachten Sie, wenn die Größe der Protokolldatei mehr als 100 MB beträgt, komprimieren Sie sie (mit Standard-Windows-Zip oder Linux-Zip) und laden Sie stattdessen ein komprimiertes Protokoll hoch.

Tracing für Firebird 2.5

Schritt 1 - Konfigurationsdatei

Kopieren Sie die folgende Konfiguration in die Datei fbtrace25.conf, oder laden Sie die fertige Datei von hier herunter.

    enabled true
	log_connections true
	log_statement_finish true
	log_errors true
	print_plan true
	print_perf true
	time_threshold 200
	max_sql_length 65000
	max_blr_length 500
	max_dyn_length 500
	max_arg_length 80
	max_arg_count 50

Speichern Sie die Datei in einem Ordner ohne Leerzeichen, zum Beispiel C:\temp\fbtrace25.conf oder /opt/fbtrace25.conf

Schritt 2 - Konfiguration testen

Führen Sie fbtracemgr aus, um zu überprüfen, ob die Konfiguration funktioniert:

Windows

Öffnen Sie die Eingabeaufforderung (cmd.exe), wechseln Sie in den Bin-Ordner von Firebird (dies kann C:\Program Files\Firebird\Firebird_2_5\bin oder C:\HQbird\Firebird25\bin sein) und führen Sie aus (verwenden Sie Ihr tatsächliches SYSDBA-Passwort anstelle von masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf
Als Ergebnis sehen Sie die Ausgabe in der Eingabeaufforderung, etwa so
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
        C:\HQBIRD\FIREBIRD30\SECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )

Linux

Öffnen Sie das Terminal und führen Sie dann fbtracemgr aus dem Firebird-bin-Ordner aus (/opt/firebird/bin oder /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf   

Schritt 3 - Logs sammeln

Wenn Sie keine Fehler auf dem Bildschirm sehen, starten Sie das Tracing, um die Datenausgabe in die Datei zu sammeln, im Beispiel c:\temp\log1.log:

Windows

fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log

Linux

./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf > log1.log  
Lassen Sie es laufen, um die problematischen SQL-Abfragen eine Weile zu erfassen (minimum 3-4 Minuten, empfohlen ist 1 Stunde), und unterbrechen Sie dann fbtracemgr mit Strg-C.

Schritt 4. Ergebnisse hochladen

Laden Sie die resultierende Protokolldatei zur Trace-Visualisierung auf cc.ib-aid.com hoch
Bitte beachten Sie, komprimieren Sie die Protokolldatei, wenn sie größer als 20MB ist (mit Standard-Windows-Zip oder mit Linux gz oder 7zip), und laden Sie stattdessen das komprimierte Protokoll hoch. Die Größe des komprimierten Protokolls ist auf 1GB begrenzt, größere Protokolldateien werden gelöscht.
Sie benötigen ein Konto, um sich anzumelden.

Nach dem Login klicken Sie auf "Upload" in der oberen rechten Ecke des "Traces"-Widgets:

Select Upload trace

Wählen Sie dann die Trace-Protokolldatei (max. 120MB) auf der Festplatte aus und klicken Sie auf Upload:

select tarce log to upload


Das Hochladen kann 1-2 Minuten dauern, abhängig von Ihrer Internet-Upload-Geschwindigkeit und allgemeinen Konnektivität. Komprimierte Dateien werden aufgrund der reduzierten Größe schneller hochgeladen!
Dann sehen Sie die hochgeladene Datei als "Processing":



Die Verarbeitung dauert normalerweise 1-2 Minuten. Sie müssen die Schaltfläche "Refresh" verwenden, um den Status der Verarbeitung zu sehen.
Nach Abschluss der Verarbeitung sehen Sie Links zum Leistungszusammenfassungsbericht (Spalte "Trace summary report", Link "Html") und zur grafischen Darstellung des Tracings (Spalte und Link "Graphs"):


Wenn Sie auf "Html" klicken, erscheint die neue Seite mit dem Trace-Zusammenfassungsbericht.
Der Bericht enthält Listen der Top-Abfragen, sortiert nach Dauer (d.h. die längsten Abfragen), Häufigkeit (die häufigsten Abfragen), Zeitzusammenfassung (SQL-Abfragen, die die meiste Zeit in Anspruch nahmen), Abrufe (CPU-intensivste Abfragen), Lesezugriffe (Festplattenzugriffe) und Schreibzugriffe (Festplattenschreibvorgänge).
Außerdem gibt es eine Prozesszusammenfassung, in der Sie die Anwendungen sehen können, die die meisten Ressourcen verbraucht haben.



Wenn Sie auf "Graphs" klicken, sehen Sie die grafische Darstellung des Trace-Protokolls mit Top-Abfragen, gruppiert nach jeder Minute (nach dem Zeitpunkt der Beendigung der Abfrageausführung).
Wenn Sie auf einen bestimmten Zeitpunkt klicken, sehen Sie die Top-Abfragen aus dem Trace-Protokoll, deren Plan, Parameter, Statistiken:

Nächste Schritte

Einzelheiten zur Analyse von Berichten finden Sie hier: https://ib-aid.com/articles/example-of-performance-analysis