Cómo recopilar el rastreo de Firebird para el Análisis de Rendimiento de IBSurgeon
Por favor, observe: o rastreamento é seguro, pode ser iniciado em produção, não afeta o desempenho caso seja usada a configuração recomendada abaixo.
- Em Português - Como coletar Firebird Trace para IBSurgeon Performance Analysis?
- In deutscher Sprache - Wie erfasse ich Firebird-Tracees für die IBSurgeon-Leistungsanalyse?
Esta instrução descreve o uso do IBSurgeon Performance Analysis (parte da assinatura cc.ib-aid.com) para usuários do Firebird vanilla (para usuários do HQbird, está disponível na interface na aba “Performance”).
Rastreamento para Firebird 5.0, 4.0 e 3.0
Passo 1 - Arquivo de configuração
Copie a seguinte configuração para o arquivo fbtrace30.conf, ou baixe o arquivo pronto daqui.
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
}
Armazene o arquivo em uma pasta sem espaços, por exemplo, C:\temp\fbtrace30.conf, ou /opt/fbtrace30.conf
Passo 2 - Teste a configuração
Execute o fbtracemgr para verificar se a configuração funciona:
Windows
Abra o prompt de comando (execute cmd.exe), vá para a pasta do Firebird (pode ser C:\Program Files\Firebird\Firebird_3.0. ou C:\HQbird\Firebird30) e execute (use sua senha SYSDBA real em vez de masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Linux
Abra o terminal e execute o fbtracemgr a partir da pasta bin do Firebird (/ opt/firebird/bin ou /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf
Como resultado, você verá a saída no prompt de comando, algo assim:
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, )
Pare o rastreamento com Ctrl-C (e depois Enter, se necessário).
Passo 3 - Coletar log
Se você não vir erros na etapa anterior, execute o rastreamento para coletar a saída para o arquivo de log, c:\temp\log1.log no exemplo:
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
Mantenha-o em execução para capturar as consultas SQL problemáticas por um tempo (o mínimo é 3-4 minutos, o recomendado é 1 hora) e, em seguida, interrompa o fbtracemgr com Ctrl-C.
Passo 4. Enviar logs
Envie o arquivo de log resultante para a Visualização de Rastreamento em cc.ib-aid.com
Observe que, se o tamanho do arquivo de log for superior a 20Mb, compacte-o (com o zip padrão do Windows ou com zip do Linux ou 7zip) e envie o log compactado.
Próximos passos
Veja o exemplo de análise de log aqui: /articles/example-of-performance-analysis
Rastreamento para Firebird 2.5
Passo 1 - Arquivo de configuração
Copie a seguinte configuração para o arquivo fbtrace25.conf, ou baixe o arquivo pronto daqui.
<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>
Armazene o arquivo em uma pasta sem espaços, por exemplo, C:\temp\fbtrace25.conf, ou /opt/fbtrace25.conf
Passo 2 - Testar configuração
Execute o fbtracemgr para verificar se a configuração funciona:
Windows
Abra o prompt de comando (execute cmd.exe), vá para a pasta Bin do Firebird (pode ser C:\Program Files\Firebird\Firebird_2.5.in ou C:\HQbird\Firebird25.in) e execute (use sua senha SYSDBA real em vez de masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf
Como resultado, você verá a saída no prompt de comando, algo assim:
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
Abra o terminal e execute o fbtracemgr a partir da pasta bin do Firebird (/opt/firebird/bin ou /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf
Passo 3 - Coletar logs
Se você não vir erros na tela, execute o rastreamento para coletar a saída dos dados para o arquivo, c:\temp\log1.log no exemplo:
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
Mantenha-o em execução para capturar as consultas SQL problemáticas por um tempo (o mínimo é 3-4 minutos, o recomendado é 1 hora) e, em seguida, interrompa o fbtracemgr com Ctrl-C.
Passo 4. Enviar resultados
Envie o arquivo de log resultante para a Visualização de Rastreamento em cc.ib-aid.com
Observe que, se o arquivo de log for maior que 20Mb, compacte-o (com o zip padrão do Windows ou com gz do Linux ou 7zip) e envie o log compactado. O tamanho do log compactado é limitado a 1Gb; arquivos de log maiores serão excluídos.
Você precisa ter uma conta para fazer login.
Após o login, clique em “Upload” no canto superior direito do widget “Traces”:

Em seguida, selecione o arquivo de log de rastreamento (máx. 120Mb) no disco e clique em Upload:

O upload pode levar de 1 a 2 minutos, dependendo da velocidade de upload da sua conexão com a Internet e da conectividade geral. Arquivos compactados são enviados mais rápido devido ao tamanho reduzido!
Então você verá o arquivo enviado como “Processing”:

O processamento geralmente leva de 1 a 2 minutos. Você precisa usar o botão “Refresh” para ver o status do processamento.
Após a conclusão do processamento, você verá links para o relatório resumido de desempenho (coluna “Trace summary report”, link “Html”) e para a representação gráfica do rastreamento (coluna e link “Graphs”):

Se você clicar em “Html”, uma nova página com o relatório resumido do trace aparecerá.
O relatório contém listas das principais consultas, ordenadas por duração (ou seja, as consultas mais longas), frequência (as consultas mais frequentes), resumo de tempo (consultas SQL que levaram a maior parte do tempo), buscas (consultas que mais consomem CPU), leituras (leituras de disco) e gravações (gravações de disco).
Além disso, há um resumo de processos, onde você pode ver os aplicativos que consumiram a maioria dos recursos.

Se você clicar em “Graphs”, verá a representação gráfica do log de trace, com as principais consultas, agrupadas por minuto (pelo momento de término da execução das consultas).
Se você clicar em um momento específico, verá as principais consultas do log de trace, seus planos, parâmetros e estatísticas:

Próximos passos
Veja o exemplo de análise de log aqui: /articles/example-of-performance-analysis