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

Бібліотека IBSurgeon

Короткий чек-лист продуктивності бази даних Firebird

Windows

  1. Встановіть план електроживлення «Висока продуктивність» (+20% на Windows Server 2016+)?

  2. Увімкніть політику кешування запису для дисків - Enable Write-Caching

  3. У разі використання RAID переконайтеся, що встановлено сучасний драйвер і RAID налаштовано правильно.

Linux

  1. Чи встановлено Max Open Files на 49999? Перевірте cat /proc/$(pgrep firebird)/limits, за замовчуванням - 4096, збільште за потреби: вкажіть у файлі служби Firebird LimitNOFILE=49999

  2. Перевірте кількість VMA cat /proc/sys/vm/max_map_count, за замовчуванням - 64K, слід встановити 250K: додайте до /etc/sysctl.conf рядок vm.max_map_count=250000

Конфігурація Firebird (рекомендації лише для Firebird 3)

  1. Переконайтеся, що ви не використовуєте типові значення DefaultDBCacheBuffers, вони дуже низькі (256 і 8K)! Встановіть 1024 для SuperClassic і 100K для SuperServer. Не використовуйте Classic у Firebird 3 - він повільний.

  2. Переконайтеся, що DefaultDBCacheBuffers не перевизначено в заголовку бази даних: перевірте за допомогою gstat -h database -> Page Buffers, значення має бути 0. Встановіть його на 0 за допомогою gfix -buffers 0.

  3. Встановіть FileSystemCacheThreshold =100M, щоб використовувати файловий кеш ОС

  4. Для SuperServer виділіть для DefaultDBCacheBuffers менше 30% оперативної пам’яті. Якщо у вас багато баз даних, порахуйте пам’ять для всіх них і використовуйте databases.conf для окремого налаштування. Перевірте загальну кількість з’єднань і баз даних командою:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Для SuperServer і SuperClassic встановіть TempCacheLimit на 25% оперативної пам’яті, для Classic - 64M.

  2. Встановіть LockMemSize=30M - це хороше початкове значення, потім відстежуйте зростання таблиці блокувань командою fblockprint -d databasename і збільшуйте LockMemSize за потреби

  3. Встановіть LockHashSlots=20011 - це хороше початкове значення, відстежуйте Hash Lengths у lockprint

База даних

  1. Для баз даних > 50 ГБ використовуйте максимальний розмір сторінки: 16 КБ (за замовчуванням 8 КБ), щоб оптимізувати читання IO та глибину індексів. Встановіть його під час відновлення за допомогою перемикача “page”: gbak**-c -page 16384**

  2. Не використовуйте прапорець no_reserve для баз даних, які не є лише для читання. Видаліть його за допомогою **gfix -**use reserve

  3. Відстежуйте різницю між маркерами транзакцій (OIT, OST, OAT, Next) з gstat -h.

  4. Велике значення (OST-OIT) означає, що база даних, ймовірно, містить багато сміттєвих версій і потребує sweep. Заплануйте явний sweep на нічний час за допомогою gfix -sweep

  5. Велике значення (Next-OAT) означає довгу активну транзакцію запису, яка блокує збір сміття. Перевірте таблиці MON$, щоб дізнатися, який застосунок утримує транзакцію відкритою, і виправте це.

5-хвилинний тест для оцінки продуктивності Firebird

Використовуйте скрипт з відкритим кодом INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestНаразі найшвидший протестований сервер показав 18140 вставлених записів за секунду. Яким буде ваш результат?

Як покращити продуктивність Firebird понад це просте налаштування?

Спробуйте сервіс оптимізації Firebird від IBSurgeon www.ib-aid.com/perf: ми знаємо, як змусити ваш Firebird працювати швидше.