Korte Firebird-databaseprestaties-checklist
Windows
-
Stel het energiebesparingsplan in op hoge prestaties (+20% op Windows Server 2016+)?
-
Stel het Write-Caching-beleid voor schijven in op Write-Caching inschakelen
-
Controleer bij RAID of de moderne driver is geïnstalleerd en RAID correct is geconfigureerd.
Linux
-
Is Max Open Files ingesteld op 49999? Controleer dit met cat /proc/$(pgrep firebird)/limits, standaard is dit 4096, verhoog het indien nodig: stel het in in het Firebird-servicebestand met LimitNOFILE=49999
-
Controleer het VMA-aantal met cat /proc/sys/vm/max_map_count, standaard is dit 64K, dit moet worden ingesteld op 250K: voeg aan /etc/sysctl.conf de regel vm.max_map_count=250000 toe
Firebird-configuratie (aanbevelingen alleen voor Firebird 3)
-
Zorg ervoor dat u niet de standaard DefaultDBCacheBuffers gebruikt, deze zijn erg laag (256 en 8K)! Stel 1024 in voor SuperClassic en 100K voor SuperServer. Gebruik geen Classic in Firebird 3, dit is traag.
-
Zorg ervoor dat DefaultDBCacheBuffers niet wordt overschreven in de databaseheader: controleer dit met gstat -h database -> Page Buffers, dit moet 0 zijn. Stel dit in op 0 met gfix -buffers 0.
-
Stel FileSystemCacheThreshold =100M in om de bestandscache van het besturingssysteem te gebruiken
-
Wijs voor SuperServer minder dan 30% van het RAM-geheugen toe aan DefaultDBCacheBuffers. Als u veel databases heeft, bereken dan het geheugen voor alle databases en gebruik databases.conf om ze afzonderlijk te configureren. Controleer het totale aantal verbindingen en databases met de opdracht:
fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info
-
Stel voor SuperServer en SuperClassic TempCacheLimit in op 25% van het RAM-geheugen, voor Classic - 64M.
-
Stel LockMemSize=30M in, dit is een goede beginwaarde, controleer vervolgens de groei van de locktabel met de opdracht fblockprint -d databasename en verhoog LockMemSize indien nodig
-
Stel LockHashSlots=20011 in, dit is een goede beginwaarde, controleer Hash Lengths in lockprint
Database
-
Gebruik voor databases > 50Gb de maximale paginagrootte: 16Kb (standaard 8Kb), om lees-IO en de diepte van indexen te optimaliseren. Stel dit in tijdens het herstellen met de schakelaar “page”: gbak**-c -page 16384**
-
Gebruik de vlag no_reserve niet voor niet-alleen-lezen databases. Verwijder deze met **gfix -**use reserve
-
Controleer het verschil tussen de transactiemarkeringen (OIT, OST, OAT, Next) van gstat -h.
-
Groot (OST-OIT) betekent dat de database waarschijnlijk veel garbage-versies bevat en een sweep nodig heeft. Plan een expliciete sweep in voor de nacht met gfix -sweep
-
Groot (Next-OAT) betekent een lang actieve schrijfbare transactie die garbage collection blokkeert. Controleer MON$-tabellen om te zien welke applicatie de transactie openhoudt en los dit op.
5 minuten test om Firebird-prestaties te schatten
Gebruik het open-source INSERT-UPDATE_DELETE-script: www.ib-aid.com/dbtestMomenteel heeft de snelst geteste server 18140 ingevoegde records per seconde laten zien, wat is uw resultaat?
Hoe Firebird-prestaties verder verbeteren dan deze eenvoudige tuning?
Probeer IBSurgeon’s Firebird-optimalisatieservice www.ib-aid.com/perf: wij weten hoe we uw Firebird sneller kunnen laten werken.