Questa pagina è stata tradotta automaticamente. Leggi l'originale in inglese. English

Libreria IBSurgeon

Checklist rapida per le prestazioni del database Firebird

Windows

  1. Impostare il piano di risparmio energetico su prestazioni elevate (+20% su Windows Server 2016+)?

  2. Impostare la politica di scrittura nella cache per le unità su Abilita scrittura nella cache

  3. In caso di RAID, verificare che sia installato il driver moderno e che il RAID sia configurato correttamente.

Linux

  1. Max Open Files è impostato a 49999? Verificarlo con cat /proc/$(pgrep firebird)/limits, il valore predefinito è 4096, aumentarlo se necessario: impostarlo nel file di servizio di Firebird con LimitNOFILE=49999

  2. Controllare il conteggio VMA con cat /proc/sys/vm/max_map_count, il valore predefinito è 64K, dovrebbe essere impostato a 250K: aggiungere a /etc/sysctl.conf la riga vm.max_map_count=250000

Configurazione di Firebird (raccomandazioni solo per Firebird 3)

  1. Assicurarsi di non utilizzare i valori predefiniti di DefaultDBCacheBuffers, sono molto bassi (256 e 8K)! Impostare 1024 per SuperClassic e 100K per SuperServer. Non utilizzare Classic in Firebird 3, è lento.

  2. Assicurarsi che DefaultDBCacheBuffers non venga sovrascritto nell’intestazione del database: verificarlo con gstat -h database -> Page Buffers, dovrebbe essere 0. Impostarlo a 0 con gfix -buffers 0.

  3. Impostare FileSystemCacheThreshold =100M per utilizzare la cache file del sistema operativo

  4. Per SuperServer, allocare per DefaultDBCacheBuffers meno del 30% della RAM. Se si hanno molti database, calcolare la memoria per tutti e utilizzare databases.conf per configurarli separatamente. Controllare il numero totale di connessioni e database con il comando:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Per SuperServer e SuperClassic, impostare TempCacheLimit al 25% della RAM, per Classic - 64M.

  2. Impostare LockMemSize=30M, è un buon valore iniziale, quindi monitorare la crescita della tabella dei lock con il comando fblockprint -d databasename e aumentare LockMemSize se necessario

  3. Impostare LockHashSlots=20011, è un buon valore iniziale, monitorare Hash Lengths in lockprint

Database

  1. Per database > 50Gb, utilizzare la dimensione massima della pagina: 16Kb (predefinita 8Kb), per ottimizzare l’IO di lettura e la profondità degli indici. Impostarla durante il ripristino con l’opzione “page”: gbak**-c -page 16384**

  2. Non utilizzare il flag no_reserve per database non di sola lettura. Rimuoverlo con **gfix -**use reserve

  3. Monitorare la differenza tra i marcatori delle transazioni (OIT, OST, OAT, Next) da gstat -h.

  4. Un valore grande (OST-OIT) significa che il database contiene probabilmente molte versioni spazzatura e richiede uno sweep. Pianificare uno sweep esplicito durante la notte con gfix -sweep

  5. Un valore grande (Next-OAT) significa una lunga transazione scrivibile attiva che blocca la raccolta dei rifiuti. Controllare le tabelle MON$ per vedere quale applicazione tiene aperta la transazione e correggerla.

Test di 5 minuti per stimare le prestazioni di Firebird

Utilizzare lo script open-source INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestAttualmente, il server più veloce testato ha mostrato 18140 record inseriti al secondo, quale sarà il tuo risultato?

Come migliorare le prestazioni di Firebird oltre questa semplice ottimizzazione?

Prova il servizio di ottimizzazione Firebird di IBSurgeon www.ib-aid.com/perf: sappiamo come far funzionare il tuo Firebird più velocemente.