Hoe Firebird-trace te verzamelen voor IBSurgeon Performance Analysis
Please note: tracing is safe, it can be started on the production, it does not affect the performance in case of using the recommended configuration below.
- Em Português - Como coletar Firebird Trace para IBSurgeon Performance Analysis?
- In deutscher Sprache - Wie erfasse ich Firebird-Tracees für die IBSurgeon-Leistungsanalyse?
Deze instructie beschrijft het gebruik van IBSurgeon Performance Analysis (onderdeel van het cc.ib-aid.com abonnement) voor gebruikers van standaard Firebird (voor gebruikers van HQbird is dit beschikbaar in de interface op het tabblad “Performance”).
Tracing voor Firebird 5.0, 4.0 en 3.0
Stap 1 - Configuratiebestand
Kopieer de volgende configuratie naar het bestand fbtrace30.conf, of download het kant-en-klare bestand hier.
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
}
Sla het bestand op in een map zonder spaties, bijvoorbeeld C:\temp\fbtrace30.conf, of /opt/fbtrace30.conf
Stap 2 - Test de configuratie
Voer fbtracemgr uit om te controleren dat de configuratie werkt:
Windows
Open de opdrachtprompt (voer cmd.exe uit), ga naar de map met Firebird (dit kan C:\Program Files\Firebird\Firebird_3.0. of C:\HQbird\Firebird30 zijn) en voer uit (gebruik uw daadwerkelijke SYSDBA-wachtwoord in plaats van masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Linux
Open de terminal en voer vervolgens fbtracemgr uit vanuit de Firebird bin-map (/ opt/firebird/bin of /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf
Als resultaat ziet u de uitvoer in de opdrachtprompt, ongeveer zoals dit:
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Stop de tracing met Ctrl-C (en daarna Enter, indien nodig).
Stap 3 - Logboek verzamelen
Als u geen fouten ziet in de vorige stap, voer dan tracing uit om de uitvoer naar het logbestand te verzamelen, in het voorbeeld 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
Laat het draaien om de problematische SQL-queries een tijdje op te vangen (het minimum is 3-4 minuten, aanbevolen is 1 uur), en onderbreek daarna de fbtracemgr met Ctrl-C.
Stap 4. Logboeken uploaden
Upload het resulterende logbestand naar de Trace Visualization op cc.ib-aid.com
Let op: als de grootte van het logbestand meer dan 20Mb is, zip het dan (met standaard Windows zip of met Linux zip of 7zip), en upload in plaats daarvan een gecomprimeerd logboek.
Volgende stappen
Zie het voorbeeld van loganalyse hier: /articles/example-of-performance-analysis
Tracing voor Firebird 2.5
Stap 1 - Configuratiebestand
Kopieer de volgende configuratie naar het bestand fbtrace25.conf, of download het kant-en-klare bestand van hier.
<database>
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
</database>
Sla het bestand op in een map zonder spaties, bijvoorbeeld C:\temp\fbtrace25.conf, of /opt/fbtrace25.conf
Stap 2 - Test configuratie
Voer fbtracemgr uit om te controleren dat de configuratie werkt:
Windows
Open de opdrachtprompt (voer cmd.exe uit), ga naar de Bin-map van Firebird (dit kan C:\Program Files\Firebird\Firebird_2.5.in of C:\HQbird\Firebird25.in zijn) en voer uit (gebruik uw daadwerkelijke SYSDBA-wachtwoord in plaats van masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf
Als resultaat ziet u de uitvoer in de opdrachtprompt, ongeveer zoals dit:
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Linux
Open de terminal en voer vervolgens fbtracemgr uit vanuit de Firebird bin-map (/opt/firebird/bin of /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf
Stap 3 - Logboeken verzamelen
Als u geen fouten op het scherm ziet, voer dan tracing uit om de uitvoer van de gegevens naar het bestand te verzamelen, in het voorbeeld 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
Laat het draaien om de problematische SQL-queries een tijdje op te vangen (het minimum is 3-4 minuten, aanbevolen is 1 uur), en onderbreek daarna de fbtracemgr met Ctrl-C.
Stap 4. Resultaten uploaden
Upload het resulterende logbestand naar de Trace Visualization op cc.ib-aid.com
Let op: comprimeer het logbestand als het groter is dan 20Mb (met standaard Windows zip of met Linux gz of 7zip), en upload in plaats daarvan een gecomprimeerd logboek. De grootte van het gecomprimeerde logboek is beperkt tot 1Gb, grotere logbestanden worden verwijderd.
U moet een account hebben om in te loggen.
Na het inloggen klikt u op “Upload” in de rechterbovenhoek van de “Traces”-widget:

Selecteer vervolgens het trace-logbestand (max 120Mb) op schijf en klik op Upload:

Het uploaden kan 1-2 minuten duren, afhankelijk van uw internetverbinding uploadsnelheid en algemene connectiviteit. Gecomprimeerde bestanden worden sneller geüpload vanwege de kleinere omvang!
Daarna ziet u het geüploade bestand als “Processing”:

De verwerking duurt meestal 1-2 minuten. U moet de knop “Refresh” gebruiken om de status van de verwerking te zien.
Nadat de verwerking is voltooid, ziet u links naar het prestatiesamenvattingsrapport (kolom “Trace summary report”, link “Html”), en naar de grafische weergave van de tracing (kolom en link “Graphs”):

Als u op “Html” klikt, verschijnt de nieuwe pagina met het trace-samenvattingsrapport.
Het rapport bevat lijsten van top-queries, gesorteerd op duur (d.w.z. de langste queries), frequentie (de meest voorkomende queries), tijd-samenvatting (SQL-queries die het grootste deel van de tijd in beslag namen), fetches (meest CPU-verbruikende queries), reads (schijflezingen) en writes (schijfschrijvingen).
Er is ook een processamenvatting, waar u de applicaties kunt zien die het grootste deel van de resources verbruikten.

Als u op “Graphs” klikt, ziet u de grafische weergave van het trace-logboek, met top-queries, gegroepeerd per minuut (op basis van het moment van voltooiing van de query-uitvoering).
Als u op een specifiek tijdstip klikt, ziet u top-queries uit het trace-logboek, hun plan, parameters en statistieken:

Volgende stappen
Zie het voorbeeld van loganalyse hier: /articles/example-of-performance-analysis