Ta strona została przetłumaczona maszynowo. Przeczytaj oryginał angielski. English

Biblioteka IBSurgeon

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:

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

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

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

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:

Specjalne podziękowania dla Olega Matveeva za pomoc w przygotowaniu tego artykułu!