Jak zrychlit Firebird o 20 % na Windows Server 2016 za méně než 1 minutu
Stále více uživatelů přechází na Windows Server 2016 ze starších verzí a někteří z nich si všimli, že Windows Server 2016 pracuje pomaleji než předchozí verze, a to i na stejném hardwaru se stejnou databází.
Provedli jsme několik testů na Windows Server 2016 a Firebirdu a zjistili jsme mimo jiné možnost, která dramaticky ovlivňuje výkon Windows Server 2016: plán napájení.
Ve výchozím nastavení má Windows 2016 plán napájení «Vyvážený», který automaticky vyvažuje výkon s spotřebou energie na výkonném hardwaru. Zní to neškodně, ale ve skutečnosti plán napájení Vyvážený na Windows Server 2016 výrazně potlačuje výkon CPU a snižuje celkový výkon serveru.
Plán napájení lze přepnout za běhu, není nutný restart. Podívejte se na efekt povolení plánu napájení «Vysoký výkon» na serveru s databází Firebird, která obsluhuje 70 připojení:

Efekt plánu napájení Vysoký výkon na využití CPU
Dobře, to může být jen využití CPU, ale co celkový výkon? Spustili jsme několik testů, podobných TPCC (simulace OLTP aplikace), a získali jsme tato čísla:
| Plán napájení | TPC-C propustnost (čím vyšší, tím lepší) |
|---|---|
| Vyvážený | 17029 |
| Vysoký výkon | 21226 |
Tento test je vysoce závislý na disku, takže rozdíl je pouze 20 %, u operací náročných na CPU může být zlepšení ještě vyšší.
Také jsme provedli test obnovy (pomocí gbak -c) databáze Firebird 2.5 o velikosti 144 GB s různými plány napájení:
| Plán napájení | Čas obnovy (čím méně, tím lépe) |
|---|---|
| Vyvážený | 4 hodiny 7 minut |
| Vysoký výkon | 2 hodiny 35 minut |
Jediná možnost «úspory energie» téměř zdvojnásobila výkon obnovy! Proč máme tak výrazné zvýšení výkonu? Odpověď je v indexech: během obnovy intenzivně využívají CPU k řazení hodnot.
Podívejte se na hodnoty časových razítek z obnovy gbak (v sekundách) pro 5 největších indexů.
S vyváženým plánem napájení 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
Celkový čas: 3775 sekund
S plánem napájení Vysoký výkon
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
Celkový čas: 2593 sekund
Shrnutí
Takže toto jednoduché nastavení v Ovládacích panelech -> Hardware -> Možnosti napájení může výrazně zlepšit výkon databáze Firebird na Windows Server 2016.
Zkontrolujte to a okamžitě povolte plán napájení Vysoký výkon!
Další čtení o výkonu databáze Firebird:
- 45 způsobů, jak zrychlit databázi Firebird
- Nové monitorování výkonu v HQbird 2018
- Služba optimalizace výkonu Firebird
Zvláštní poděkování Olegu Matveevovi za pomoc s přípravou tohoto článku!