Як змусити Firebird працювати на 20% швидше на Windows Server 2016 менш ніж за 1 хвилину
Все більше користувачів оновлюються до Windows Server 2016 зі старих версій, і деякі з них помітили, що Windows Server 2016 працює повільніше, ніж попередні версії, навіть на тому ж обладнанні з тією ж базою даних.
Ми провели кілька тестів на Windows Server 2016 та Firebird і виявили, серед іншого, опцію, яка кардинально впливає на продуктивність Windows Server 2016: схему електроживлення.
За замовчуванням Windows 2016 має схему «Збалансована», яка автоматично балансує продуктивність із енергоспоживанням на відповідному обладнанні. Звучить не небезпечно, але насправді збалансована схема живлення в Windows Server 2016 значно пригнічує продуктивність процесора та знижує загальну продуктивність сервера.
Схему живлення можна перемкнути на льоту, без перезавантаження. Подивіться на ефект увімкнення схеми «Висока продуктивність» на сервері з базою даних Firebird, яка обслуговує 70 з’єднань:

Вплив схеми високої продуктивності на використання процесора
Гаразд, це може бути лише використання процесора, а що щодо загальної продуктивності? Ми запустили кілька тестів, подібних до TPCC (симуляція OLTP-застосунку), і отримали такі цифри:
| Схема живлення | Пропускна здатність TPC-C (чим вище, тим краще) |
|---|---|
| Збалансована | 17029 |
| Висока продуктивність | 21226 |
Цей тест значною мірою залежить від диска, тому різниця становить лише 20%, для операцій, інтенсивних за процесором, покращення може бути ще більшим.
Також ми виконали тест відновлення (за допомогою gbak -c) бази даних Firebird 2.5 об’ємом 144 ГБ із різними схемами живлення:
| Схема живлення | Час відновлення (чим менше, тим краще) |
|---|---|
| Збалансована | 4 години 7 хвилин |
| Висока продуктивність | 2 години 35 хвилин |
Єдина опція «енергозбереження» майже вдвічі підвищила продуктивність відновлення! Чому ми маємо таке помітне підвищення продуктивності? Відповідь в індексах: під час відновлення вони інтенсивно використовують процесор для сортування значень.
Подивіться на значення часових міток із відновлення gbak (у секундах) для 5 найбільших індексів.
Зі збалансованою схемою живлення gbak:
gbak: 9529.339 1230.343 5028900 346529 activating and creating deferred index INDMF_TAG_PLC_DATA_DT_D
gbak: 10787.610 1258.270 5028909 233365 activating and creating deferred index INDMF_TAG_PLC_DATA_TAG_D
gbak: 11824.329 1036.718 5028907 216488 activating and creating deferred index INDMF_TAG_PLC_DATA_LU_D
gbak: 12571.012 746.683 5028907 265160 activating and creating deferred index INDMF_TAG_PLC_DATA_C1
gbak: 13304.334 733.321 5028908 359393 activating and creating deferred index PKMNF2_DOC_DOWNTIME
Загальний час: 3775 секунд
Зі схемою високої продуктивності
gbak: 5301.785 615.045 5028900 346529 activating and creating deferred index INDMF_TAG_PLC_DATA_DT_D
gbak: 5924.667 622.882 5028909 233365 activating and creating deferred index INDMF_TAG_PLC_DATA_TAG_D
gbak: 6569.815 645.147 5028907 216488 activating and creating deferred index INDMF_TAG_PLC_DATA_LU_D
gbak: 7186.322 616.506 5028907 265160 activating and creating deferred index INDMF_TAG_PLC_DATA_C1
gbak: 7894.340 708.018 5028908 359393 activating and creating deferred index PKMNF2_DOC_DOWNTIME
Загальний час: 2593 секунди
Підсумок
Отже, це просте налаштування в Панелі керування -> Обладнання -> Параметри живлення може значно покращити продуктивність бази даних Firebird на Windows Server 2016.
Будь ласка, перевірте це та негайно увімкніть схему «Висока продуктивність»!
Більше про продуктивність бази даних Firebird:
- 45 способів пришвидшити базу даних Firebird
- Новий моніторинг продуктивності в HQbird 2018
- Послуга оптимізації продуктивності Firebird
Особлива подяка Олегу Матвєєву за допомогу в підготовці цієї статті!