Эта страница переведена машинным переводом. Читайте английский оригинал. 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:

Особая благодарность Олегу Матвееву за помощь в подготовке этой статьи!