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

Biblioteka IBSurgeon

Krótka lista kontrolna wydajności bazy danych Firebird

Windows

  1. Ustaw plan zasilania na Wysoka wydajność (+20% na Windows Server 2016+)?

  2. Ustaw politykę buforowania zapisu dla dysków na Włącz buforowanie zapisu

  3. W przypadku RAID sprawdź, czy zainstalowany jest nowoczesny sterownik i czy RAID jest poprawnie skonfigurowany.

Linux

  1. Czy Max Open Files jest ustawione na 49999? Sprawdź to cat /proc/$(pgrep firebird)/limits, domyślnie jest 4096, zwiększ je jeśli to konieczne: ustaw w pliku usługi Firebird LimitNOFILE=49999

  2. Sprawdź liczbę VMA cat /proc/sys/vm/max_map_count, domyślnie jest 64K, powinno być ustawione na 250K: dodaj do /etc/sysctl.conf linię vm.max_map_count=250000

Konfiguracja Firebird (zalecenia tylko dla Firebird 3)

  1. Upewnij się, że nie używasz domyślnych DefaultDBCacheBuffers, są one bardzo niskie (256 i 8K)! Ustaw 1024 dla SuperClassic i 100K dla SuperServer. Nie używaj Classic w Firebird 3, jest wolny.

  2. Upewnij się, że DefaultDBCacheBuffers nie jest nadpisane w nagłówku bazy danych: sprawdź to za pomocą gstat -h baza danych -> Page Buffers, powinno być 0. Ustaw to na 0 za pomocą gfix -buffers 0.

  3. Ustaw FileSystemCacheThreshold =100M, aby używać pamięci podręcznej plików systemu operacyjnego

  4. Dla SuperServer przydziel dla DefaultDBCacheBuffers mniej niż 30% pamięci RAM. Jeśli masz wiele baz danych, policz pamięć dla wszystkich i użyj databases.conf, aby skonfigurować je osobno. Sprawdź całkowitą liczbę połączeń i baz danych za pomocą polecenia:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Dla SuperServer i SuperClassic ustaw TempCacheLimit na 25% pamięci RAM, dla Classic - 64M.

  2. Ustaw LockMemSize=30M, to dobra wartość początkowa, następnie monitoruj wzrost tabeli blokad za pomocą polecenia fblockprint -d nazwa_bazy i zwiększ LockMemSize jeśli to konieczne

  3. Ustaw LockHashSlots=20011, to dobra wartość początkowa, monitoruj Hash Lengths w lockprint

Baza danych

  1. Dla baz danych > 50Gb użyj maksymalnego rozmiaru strony: 16Kb (domyślnie 8Kb), aby zoptymalizować odczyt IO i głębokość indeksów. Ustaw to podczas przywracania za pomocą przełącznika “page”: gbak**-c -page 16384**

  2. Nie używaj flagi no_reserve dla baz danych nie tylko do odczytu. Usuń ją za pomocą **gfix -**use reserve

  3. Monitoruj różnicę między znacznikami transakcji (OIT, OST, OAT, Next) z gstat -h.

  4. Duża (OST-OIT) oznacza, że baza danych prawdopodobnie zawiera dużo śmieciowych wersji i wymaga sweep. Zaplanuj jawny sweep na noc za pomocą gfix -sweep

  5. Duża (Next-OAT) oznacza długą aktywną transakcję zapisu, która blokuje usuwanie śmieci. Sprawdź tabele MON$, aby zobaczyć, która aplikacja trzyma transakcję otwartą i napraw to.

Test 5 minutowy do oszacowania wydajności Firebird

Użyj skryptu open-source INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestObecnie najszybszy przetestowany serwer pokazał 18140 wstawionych rekordów na sekundę, jaki będzie Twój wynik?

Jak poprawić wydajność Firebird poza tą prostą konfiguracją?

Wypróbuj usługę optymalizacji Firebird od IBSurgeon www.ib-aid.com/perf: wiemy, jak sprawić, aby Twój Firebird działał szybciej.