Diese Seite wurde maschinell übersetzt. Lesen Sie das englische Original. English

IBSurgeon-Bibliothek

Kurze Firebird-Datenbank-Leistungscheckliste

Windows

  1. Stellen Sie den Energiesparplan auf Höchstleistung um (+20 % unter Windows Server 2016+)?

  2. Legen Sie die Richtlinie für das Zwischenschreiben für Laufwerke fest: Schreib-Caching aktivieren

  3. Bei RAID: Stellen Sie sicher, dass der aktuelle Treiber installiert und RAID korrekt konfiguriert ist.

Linux

  1. Ist Max Open Files auf 49999 gesetzt? Prüfen Sie es mit cat /proc/$(pgrep firebird)/limits, der Standardwert ist 4096, erhöhen Sie ihn bei Bedarf: Setzen Sie ihn in der Firebird-Dienstdatei auf LimitNOFILE=49999

  2. Prüfen Sie die VMA-Anzahl mit cat /proc/sys/vm/max_map_count, der Standardwert ist 64K, sollte auf 250K gesetzt werden: Fügen Sie in /etc/sysctl.conf die Zeile vm.max_map_count=250000 hinzu

Firebird-Konfiguration (Empfehlungen nur für Firebird 3)

  1. Stellen Sie sicher, dass Sie nicht die Standardwerte für DefaultDBCacheBuffers verwenden, diese sind sehr niedrig (256 und 8K)! Setzen Sie 1024 für SuperClassic und 100K für SuperServer. Verwenden Sie Classic in Firebird 3 nicht, es ist langsam.

  2. Stellen Sie sicher, dass DefaultDBCacheBuffers nicht im Datenbank-Header überschrieben wird: Prüfen Sie es mit gstat -h Datenbank -> Page Buffers, es sollte 0 sein. Setzen Sie es mit gfix -buffers 0 auf 0.

  3. Setzen Sie FileSystemCacheThreshold =100M, um den Dateicache des Betriebssystems zu nutzen

  4. Für SuperServer: Weisen Sie für DefaultDBCacheBuffers weniger als 30 % des Arbeitsspeichers zu. Wenn Sie viele Datenbanken haben, berechnen Sie den Speicher für alle und konfigurieren Sie sie separat mit databases.conf. Prüfen Sie die Gesamtzahl der Verbindungen und Datenbanken mit dem Befehl:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Für SuperServer und SuperClassic: Setzen Sie TempCacheLimit auf 25 % des Arbeitsspeichers, für Classic - 64M.

  2. Setzen Sie LockMemSize=30M, das ist ein guter Anfangswert, überwachen Sie dann das Wachstum der Sperrtabelle mit dem Befehl fblockprint -d datenbankname und erhöhen Sie LockMemSize bei Bedarf

  3. Setzen Sie LockHashSlots=20011, das ist ein guter Anfangswert, überwachen Sie die Hash-Längen in lockprint

Datenbank

  1. Für Datenbanken > 50 GB verwenden Sie die maximale Seitengröße: 16 KB (Standard 8 KB), um Lese-IO und Indextiefe zu optimieren. Setzen Sie dies beim Wiederherstellen mit dem Schalter “page”: gbak**-c -page 16384**

  2. Verwenden Sie das Flag no_reserve nicht für nicht schreibgeschützte Datenbanken. Entfernen Sie es mit **gfix -**use reserve

  3. Überwachen Sie die Differenz zwischen den Transaktionsmarkierungen (OIT, OST, OAT, Next) aus gstat -h.

  4. Groß (OST-OIT) bedeutet, dass die Datenbank wahrscheinlich viele Garbage-Versionen enthält und einen Sweep benötigt. Planen Sie einen expliziten Sweep für die Nachtzeit mit gfix -sweep

  5. Groß (Next-OAT) bedeutet eine lange aktive beschreibbare Transaktion, die die Garbage Collection blockiert. Prüfen Sie die MON$-Tabellen, um zu sehen, welche Anwendung die Transaktion offen hält, und beheben Sie das Problem.

5-Minuten-Test zur Bewertung der Firebird-Leistung

Verwenden Sie das Open-Source-Skript INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestDerzeit hat der schnellste getestete Server 18140 eingefügte Datensätze pro Sekunde gezeigt - was wird Ihr Ergebnis sein?

Wie kann die Firebird-Leistung über diese einfache Optimierung hinaus verbessert werden?

Probieren Sie den Firebird-Optimierungsservice von IBSurgeon www.ib-aid.com/perf: Wir wissen, wie Sie Ihren Firebird schneller machen können.