Jak sprawić, aby Firebird działał o 20% szybciej na Windows Server 2016 w mniej niż 1 minutę
Coraz więcej użytkowników aktualizuje system do Windows Server 2016 ze starszych wersji, a niektórzy z nich zauważyli, że Windows Server 2016 działa wolniej niż poprzednie wersje, nawet na tym samym sprzęcie z tą samą bazą danych.
Przeprowadziliśmy kilka testów na Windows Server 2016 i Firebird i odkryliśmy między innymi opcję, która dramatycznie wpływa na wydajność Windows Server 2016: plan zasilania.
Domyślnie Windows 2016 ma plan zasilania «Zrównoważony», który automatycznie równoważy wydajność z zużyciem energii na wydajnym sprzęcie. Brzmi to niegroźnie, ale w rzeczywistości plan zasilania Zrównoważony w Windows Server 2016 znacznie tłumi wydajność procesora i obniża ogólną wydajność serwera.
Plan zasilania można przełączyć w locie, bez konieczności restartu. Zobacz efekt włączenia planu zasilania «Wysoka wydajność» na serwerze z bazą danych Firebird, który obsługuje 70 połączeń:

Efekt planu zasilania Wysoka wydajność dla wykorzystania procesora
OK, to może być tylko wykorzystanie procesora, a co z ogólną wydajnością? Przeprowadziliśmy kilka testów, podobnych do TPCC (symulacja aplikacji OLTP) i otrzymaliśmy następujące liczby:
| Plan zasilania | Przepustowość TPC-C (im wyższa, tym lepiej) |
|---|---|
| Zrównoważony | 17029 |
| Wysoka wydajność | 21226 |
Ten test jest w dużej mierze ograniczony przez dysk, więc różnica wynosi tylko 20%, a w przypadku operacji intensywnie wykorzystujących procesor poprawa może być jeszcze większa.
Przeprowadziliśmy również test przywracania (za pomocą gbak -c) bazy danych Firebird 2.5 o rozmiarze 144 GB przy różnych planach zasilania:
| Plan zasilania | Czas przywracania (im mniej, tym lepiej) |
|---|---|
| Zrównoważony | 4 godziny 7 minut |
| Wysoka wydajność | 2 godziny 35 minut |
Jedna opcja «oszczędzania energii» prawie podwoiła wydajność przywracania! Dlaczego obserwujemy tak znaczący wzrost wydajności? Odpowiedź leży w indeksach: podczas przywracania intensywnie wykorzystują one procesor do sortowania wartości.
Spójrz na wartości znaczników czasu z przywracania gbak (w sekundach) dla 5 największych indeksów.
Przy zrównoważonym planie zasilania 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
Całkowity czas: 3775 sekund
Przy planie zasilania Wysoka wydajność
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
Całkowity czas: 2593 sekund
Podsumowanie
Tak więc to proste ustawienie w Panelu sterowania -> Sprzęt -> Opcje zasilania może znacznie poprawić wydajność bazy danych Firebird na Windows Server 2016.
Sprawdź to i włącz plan zasilania Wysoka wydajność natychmiast!
Więcej informacji o wydajności bazy danych Firebird:
- 45 sposobów na przyspieszenie bazy danych Firebird
- Nowe monitorowanie wydajności w HQbird 2018
- Usługa optymalizacji wydajności Firebird
Specjalne podziękowania dla Olega Matveeva za pomoc w przygotowaniu tego artykułu!