Stručný kontrolní seznam výkonu databáze Firebird
Windows
-
Nastavte energetický plán na vysoký výkon (+20 % na Windows Server 2016+)?
-
Nastavte zásady zápisu do mezipaměti pro disky na Povolit zápis do mezipaměti
-
V případě RAID ověřte, že je nainstalován moderní ovladač a RAID je správně nakonfigurován.
Linux
-
Je Max Open Files nastaveno na 49999? Zkontrolujte to příkazem cat /proc/$(pgrep firebird)/limits, výchozí hodnota je 4096, v případě potřeby ji zvyšte: nastavte ji v servisním souboru Firebird na LimitNOFILE=49999
-
Zkontrolujte počet VMA cat /proc/sys/vm/max_map_count, výchozí hodnota je 64K, měla by být nastavena na 250K: přidejte do /etc/sysctl.conf řádek vm.max_map_count=250000
Konfigurace Firebirdu (doporučení pouze pro Firebird 3)
-
Ujistěte se, že nepoužíváte výchozí DefaultDBCacheBuffers, jsou velmi nízké (256 a 8K)! Nastavte 1024 pro SuperClassic a 100K pro SuperServer. Nepoužívejte Classic ve Firebirdu 3, je pomalý.
-
Ujistěte se, že DefaultDBCacheBuffers není přepsán v hlavičce databáze: zkontrolujte to příkazem gstat -h databáze -> Page Buffers, mělo by být 0. Nastavte na 0 příkazem gfix -buffers 0.
-
Nastavte FileSystemCacheThreshold =100M pro využití souborové mezipaměti operačního systému
-
Pro SuperServer alokujte pro DefaultDBCacheBuffers méně než 30 % RAM. Pokud máte mnoho databází, spočítejte paměť pro všechny a použijte databases.conf pro jejich samostatnou konfiguraci. Zkontrolujte celkový počet připojení a databází příkazem:
fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info
-
Pro SuperServer a SuperClassic nastavte TempCacheLimit na 25 % RAM, pro Classic - 64M.
-
Nastavte LockMemSize=30M, je to dobrá počáteční hodnota, poté sledujte růst tabulky zámků příkazem fblockprint -d název_databáze a v případě potřeby zvyšte LockMemSize
-
Nastavte LockHashSlots=20011, je to dobrá počáteční hodnota, sledujte Hash Lengths v lockprint
Databáze
-
Pro databáze > 50 GB použijte maximální velikost stránky: 16Kb (výchozí 8Kb), pro optimalizaci čtení I/O a hloubky indexů. Nastavte ji při obnově přepínačem “page”: gbak**-c -page 16384**
-
Nepoužívejte příznak no_reserve pro databáze, které nejsou pouze pro čtení. Odstraňte jej příkazem **gfix -**use reserve
-
Sledujte rozdíly mezi značkami transakcí (OIT, OST, OAT, Next) z gstat -h.
-
Velký (OST-OIT) znamená, že databáze pravděpodobně obsahuje mnoho neplatných verzí a vyžaduje sweep. Naplánujte explicitní sweep na noční dobu příkazem gfix -sweep
-
Velký (Next-OAT) znamená dlouhou aktivní zapisovatelnou transakci, která blokuje garbage collection. Zkontrolujte tabulky MON$, abyste zjistili, která aplikace drží transakci otevřenou, a opravte to.
5minutový test pro odhad výkonu Firebirdu
Použijte open-source skript INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestNejrychleji testovaný server dosud vykázal 18140 vložených záznamů za sekundu, jaký bude váš výsledek?
Jak zlepšit výkon Firebirdu nad rámec tohoto jednoduchého ladění?
Vyzkoušejte službu optimalizace Firebirdu od IBSurgeon www.ib-aid.com/perf: víme, jak zajistit, aby váš Firebird pracoval rychleji.