Цю сторінку перекладено машинним перекладом. Читайте англійський оригінал. English

Бібліотека IBSurgeon

Як зібрати трасування Firebird для аналізу продуктивності IBSurgeon

Будь ласка, зверніть увагу: трасування є безпечним, його можна запускати на продакшн-сервері, воно не впливає на продуктивність у разі використання рекомендованої конфігурації нижче.

Ця інструкція описує використання IBSurgeon Performance Analysis (частина підписки cc.ib-aid.com) для користувачів стандартного Firebird (для користувачів HQbird він доступний в інтерфейсі на вкладці “Performance”).

Трасування для Firebird 5.0, 4.0 та 3.0

Крок 1 - Файл конфігурації

Скопіюйте наступну конфігурацію у файл fbtrace30.conf або завантажте готовий файл звідси.

Code
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)

Code
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)

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf

У результаті ви побачите вивід у командному рядку, приблизно такий:

Code
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

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log

Linux

Code
./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 або завантажте готовий файл звідси.

Code
    <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
Code
    </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)

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf

У результаті ви побачите вивід у командному рядку, приблизно такий:

Code
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)

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf

Крок 3 - Збір журналів

Якщо ви не бачите помилок на екрані, запустіть трасування для збору виводу даних у файл, c:\temp\log1.log у прикладі:

Windows

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log

Linux

Code
./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”:

Select Upload trace

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

select tarce log to upload

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

Потім ви побачите завантажений файл у статусі “Processing”:

Обробка зазвичай займає 1-2 хвилини. Вам потрібно використовувати кнопку “Refresh”, щоб побачити статус обробки.

Після завершення обробки ви побачите посилання на звіт із підсумками продуктивності (стовпець “Trace summary report”, посилання “Html”) та на графічне представлення трасування (стовпець і посилання “Graphs”):

Якщо ви натиснете “Html”, з’явиться нова сторінка зі звітом про підсумки трасування.

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

Також є зведення процесів, де ви можете побачити застосунки, які спожили більшість ресурсів.

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

Якщо ви натиснете на конкретний момент часу, ви побачите найкращі запити з журналу трасування, їхні плани, параметри, статистику:

Наступні кроки

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