Як зібрати трасування Firebird для аналізу продуктивності IBSurgeon
Будь ласка, зверніть увагу: трасування є безпечним, його можна запускати на продакшн-сервері, воно не впливає на продуктивність у разі використання рекомендованої конфігурації нижче.
- Em Português - Como coletar Firebird Trace para IBSurgeon Performance Analysis?
- In deutscher Sprache - Wie erfasse ich Firebird-Tracees für die IBSurgeon-Leistungsanalyse?
Ця інструкція описує використання IBSurgeon Performance Analysis (частина підписки cc.ib-aid.com) для користувачів стандартного Firebird (для користувачів HQbird він доступний в інтерфейсі на вкладці “Performance”).
Трасування для Firebird 5.0, 4.0 та 3.0
Крок 1 - Файл конфігурації
Скопіюйте наступну конфігурацію у файл fbtrace30.conf або завантажте готовий файл звідси.
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
}
Збережіть файл у папці без пробілів, наприклад, C:\temp\fbtrace30.conf або /opt/fbtrace30.conf
Крок 2 - Перевірка конфігурації
Запустіть fbtracemgr, щоб перевірити, що конфігурація працює:
Windows
Відкрийте командний рядок (запустіть cmd.exe), перейдіть до папки з Firebird (це може бути C:\Program Files\Firebird\Firebird_3.0. або C:\HQbird\Firebird30) і запустіть (використовуйте свій фактичний пароль SYSDBA замість masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Linux
Запустіть термінал, а потім fbtracemgr із папки bin Firebird (/ opt/firebird/bin або /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf
У результаті ви побачите вивід у командному рядку, приблизно такий:
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, )
Зупиніть трасування за допомогою Ctrl-C (а потім Enter, якщо необхідно).
Крок 3 - Збір журналу
Якщо ви не бачите помилок на попередньому кроці, запустіть трасування для збору виводу у файл журналу, 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
Залиште його працювати, щоб зафіксувати проблемні SQL-запити протягом деякого часу (мінімум 3-4 хвилини, рекомендовано 1 година), а потім перервіть fbtracemgr за допомогою Ctrl-C.
Крок 4. Завантаження журналів
Завантажте отриманий файл журналу до Trace Visualization на cc.ib-aid.com
Зверніть увагу: якщо розмір файлу журналу перевищує 20 Мб, заархівуйте його (стандартним Windows zip або Linux zip чи 7zip) і завантажте стиснутий журнал замість нього.
Наступні кроки
Приклад аналізу журналу дивіться тут: /articles/example-of-performance-analysis
Трасування для Firebird 2.5
Крок 1 - Файл конфігурації
Скопіюйте наступну конфігурацію у файл fbtrace25.conf або завантажте готовий файл звідси.
<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>
Збережіть файл у папці без пробілів, наприклад, C:\temp\fbtrace25.conf або /opt/fbtrace25.conf
Крок 2 - Перевірка конфігурації
Запустіть fbtracemgr, щоб перевірити, що конфігурація працює:
Windows
Відкрийте командний рядок (запустіть cmd.exe), перейдіть до папки Bin Firebird (це може бути C:\Program Files\Firebird\Firebird_2.5.in або C:\HQbird\Firebird25.in) і запустіть (використовуйте свій фактичний пароль SYSDBA замість masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf
У результаті ви побачите вивід у командному рядку, приблизно такий:
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
Запустіть термінал, а потім запустіть fbtracemgr із папки bin Firebird (/opt/firebird/bin або /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf
Крок 3 - Збір журналів
Якщо ви не бачите помилок на екрані, запустіть трасування для збору виводу даних у файл, 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
Залиште його працювати, щоб зафіксувати проблемні SQL-запити протягом деякого часу (мінімум 3-4 хвилини, рекомендовано 1 година), а потім перервіть fbtracemgr за допомогою Ctrl-C.
Крок 4. Завантаження результатів
Завантажте отриманий файл журналу до Trace Visualization на cc.ib-aid.com
Зверніть увагу: стисніть файл журналу, якщо він більший за 20 Мб (стандартним Windows zip або Linux gz чи 7zip), і завантажте стиснутий журнал замість нього. Розмір стиснутого журналу обмежений 1 Гб, більші файли журналів буде видалено.
Вам потрібен обліковий запис для входу.
Після входу натисніть “Upload” у верхньому правому куті віджета “Traces”:

Потім виберіть файл журналу трасування (макс. 120 Мб) на диску та натисніть Upload:

Завантаження може зайняти 1-2 хвилини, залежно від швидкості вашого інтернет-з’єднання та загальної зв’язку. Стиснуті файли завантажуються швидше через зменшений розмір!
Потім ви побачите завантажений файл у статусі “Processing”:

Обробка зазвичай займає 1-2 хвилини. Вам потрібно використовувати кнопку “Refresh”, щоб побачити статус обробки.
Після завершення обробки ви побачите посилання на звіт із підсумками продуктивності (стовпець “Trace summary report”, посилання “Html”) та на графічне представлення трасування (стовпець і посилання “Graphs”):

Якщо ви натиснете “Html”, з’явиться нова сторінка зі звітом про підсумки трасування.
Звіт містить списки найкращих запитів, відсортованих за тривалістю (тобто найдовші запити), частотою (найчастіші запити), сумарним часом (SQL-запити, які зайняли більшу частину часу), вибірками (запити, що найбільше споживають CPU), читаннями (читання з диска) та записами (запис на диск).
Також є зведення процесів, де ви можете побачити застосунки, які спожили більшість ресурсів.

Якщо ви натиснете “Graphs”, ви побачите графічне представлення журналу трасування з найкращими запитами, згрупованими за кожною хвилиною (за моментом завершення виконання запитів).
Якщо ви натиснете на конкретний момент часу, ви побачите найкращі запити з журналу трасування, їхні плани, параметри, статистику:

Наступні кроки
Приклад аналізу журналу дивіться тут: /articles/example-of-performance-analysis