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:

Wählen Sie dann die Trace-Protokolldatei (max. 120MB) auf der Festplatte aus und klicken Sie auf 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