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

Бібліотека IBSurgeon

Як змусити 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:

Code
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

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

Особлива подяка Олегу Матвєєву за допомогу в підготовці цієї статті!