Jak shromáždit Firebird trace pro IBSurgeon Performance Analysis
Poznámka: trasování je bezpečné, lze jej spustit na produkčním prostředí, neovlivňuje výkon při použití doporučené konfigurace níže.
- Em Português - Como coletar Firebird Trace para IBSurgeon Performance Analysis?
- In deutscher Sprache - Wie erfasse ich Firebird-Tracees für die IBSurgeon-Leistungsanalyse?
Tento návod popisuje použití IBSurgeon Performance Analysis (součást předplatného cc.ib-aid.com) pro uživatele standardního Firebirdu (pro uživatele HQbirdu je dostupné v rozhraní na záložce „Performance").
Trasování pro Firebird 5.0, 4.0 a 3.0
Krok 1 - Konfigurační soubor
Zkopírujte následující konfiguraci do souboru fbtrace30.conf, nebo stáhněte hotový soubor odtud.
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
}
Uložte soubor do složky bez mezer, například C:\temp\fbtrace30.conf nebo /opt/fbtrace30.conf
Krok 2 - Otestování konfigurace
Spusťte fbtracemgr pro ověření, že konfigurace funguje:
Windows
Otevřete příkazový řádek (spusťte cmd.exe), přejděte do složky s Firebirdem (může to být C:\Program Files\Firebird\Firebird_3.0. nebo C:\HQbird\Firebird30) a spusťte (použijte své skutečné heslo SYSDBA místo masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Linux
Spusťte terminál a poté fbtracemgr ze složky bin Firebirdu (/ opt/firebird/bin nebo /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf
Výsledkem bude výstup v příkazovém řádku, něco jako:
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, )
Zastavte trasování pomocí Ctrl-C (a poté Enter, pokud je to nutné).
Krok 3 - Sběr protokolu
Pokud v předchozím kroku nevidíte chyby, spusťte trasování pro sběr výstupu do souboru protokolu, v příkladu 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
Nechte jej běžet, aby zachytil problematické SQL dotazy po určitou dobu (minimum jsou 3-4 minuty, doporučeno je 1 hodina), a poté přerušte fbtracemgr pomocí Ctrl-C.
Krok 4 - Nahrání protokolů
Nahrajte výsledný soubor protokolu do Trace Visualization na cc.ib-aid.com
Poznámka: pokud je velikost souboru protokolu větší než 20 Mb, zazipujte jej (standardním Windows zipem nebo Linux zipem či 7zip) a nahrajte místo toho komprimovaný protokol.
Další kroky
Příklad analýzy protokolu naleznete zde: /articles/example-of-performance-analysis
Trasování pro Firebird 2.5
Krok 1 - Konfigurační soubor
Zkopírujte následující konfiguraci do souboru fbtrace25.conf, nebo stáhněte hotový soubor odtud.
<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>
Uložte soubor do složky bez mezer, například C:\temp\fbtrace25.conf nebo /opt/fbtrace25.conf
Krok 2 - Otestování konfigurace
Spusťte fbtracemgr pro ověření, že konfigurace funguje:
Windows
Otevřete příkazový řádek (spusťte cmd.exe), přejděte do složky Bin Firebirdu (může to být C:\Program Files\Firebird\Firebird_2.5.in nebo C:\HQbird\Firebird25.in) a spusťte (použijte své skutečné heslo SYSDBA místo masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf
Výsledkem bude výstup v příkazovém řádku, něco jako:
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
Spusťte terminál a poté spusťte fbtracemgr ze složky bin Firebirdu (/opt/firebird/bin nebo /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf
Krok 3 - Sběr protokolů
Pokud na obrazovce nevidíte chyby, spusťte trasování pro sběr výstupu dat do souboru, v příkladu 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
Nechte jej běžet, aby zachytil problematické SQL dotazy po určitou dobu (minimum jsou 3-4 minuty, doporučeno je 1 hodina), a poté přerušte fbtracemgr pomocí Ctrl-C.
Krok 4 - Nahrání výsledků
Nahrajte výsledný soubor protokolu do Trace Visualization na cc.ib-aid.com
Poznámka: komprimujte soubor protokolu, pokud je větší než 20 Mb (standardním Windows zipem nebo Linux gz či 7zip), a nahrajte místo toho komprimovaný protokol. Velikost komprimovaného protokolu je omezena na 1 Gb, větší soubory protokolů budou smazány.
Pro přihlášení potřebujete mít účet.
Po přihlášení klikněte na „Upload" v pravém horním rohu widgetu „Traces":

Poté vyberte soubor protokolu trasování (max. 120 Mb) na disku a klikněte na Upload:

Nahrávání může trvat 1-2 minuty v závislosti na rychlosti nahrávání vašeho internetového připojení a celkové konektivitě. Komprimované soubory se nahrávají rychleji díky zmenšené velikosti!
Poté uvidíte nahraný soubor jako „Processing" (zpracovává se):

Zpracování obvykle trvá 1-2 minuty. Pro zobrazení stavu zpracování musíte použít tlačítko „Refresh".
Po dokončení zpracování uvidíte odkazy na souhrnnou zprávu o výkonu (sloupec „Trace summary report", odkaz „Html") a na grafické znázornění trasování (sloupec a odkaz „Graphs"):

Pokud kliknete na „Html", zobrazí se nová stránka se souhrnnou zprávou o trasování.
Zpráva obsahuje seznamy nejlepších dotazů seřazené podle doby trvání (tj. nejdelší dotazy), frekvence (nejčastější dotazy), časového souhrnu (SQL dotazy, které zabraly většinu času), čtení z vyrovnávací paměti (dotazy nejnáročnější na CPU), čtení z disku (čtení z disku) a zápisů (zápisy na disk).
Dále je zde souhrn procesů, kde můžete vidět aplikace, které spotřebovaly většinu zdrojů.

Pokud kliknete na „Graphs", uvidíte grafické znázornění protokolu trasování s nejlepšími dotazy seskupenými po každé minutě (podle okamžiku dokončení provádění dotazů).
Pokud kliknete na konkrétní časový okamžik, uvidíte nejlepší dotazy z protokolu trasování, jejich plán, parametry a statistiky:

Další kroky
Příklad analýzy protokolu naleznete zde: /articles/example-of-performance-analysis