Hardware-und-Softwarebedingungen - Handbuch
Performance-Fragen Greenware8
Optimale Konfiguration: dedizierter Server mit 1 SSD für das Betriebssystem, 1 SSD für den Datenbankserver.
OS Server-Einrichtung (Optimal):
keine Dateifreigaben oder andere MS Dienste (Exchange, Domaincontroller u.s.w.) außer RDP sollten aktiv sein,
kein Antivir (konfigurieren), kein Online-Backup oder Imaging-Software usw. Alle nicht benutzten Services
sollten deaktiviert werden, vor allem Windows-Updates.
(für große Datenbank-Last ->RAMDISK: Für LCK und TMP-Verzeichnis ist eine RAM-Disk sehr nützlich.
Für RAM-Disk Verwendung sollte der physikalische Speicher auf 32GB erhöht werden. Mehr ist nicht erforderlich.
Eine freie RAM-Disk-Software kann auf Anfrage empfohlen werden. )
NAS-Laufwerke:
Die Verwendung eines Firebird Servers mit der Datenbank auf einem externen SAN/NAS-Laufwerk ist keine gute Idee!
Virtualisierung:
Ein Firebird Datenbankserver sollte ein dedizierter Server und, um maximale Leistung zu gewährleisten,
lediglich für den Firebird Datenbankdienst zuständig sein. Virtuelle Server büßen zwischen 20% und 80%
ihrer Geschwindigkeit unter einer hohen Last auf einer VM ein. Jeglicher Vorteil eines VM-basierten
Firebird Servers wird durch zusätzliche Durchführungszeit bei Erledigung der Aufgaben von allen Mitarbeitern
teuer bezahlt.
Firebird-Server
- Welche Version des FirebirdServers ist installiert? (z.B. 2.5.2.26540)
- aktuelle Version einspielen!
- Ist die 32- oder 64-Bit-Variante des FirebirdServers installiert?
- es sollte die zum Betriebssystem passende Variante installiert sein!
- Was sind die Einstellungen der firebird.conf?
- DefaultDbCachePages mittels Installation & Update FirebirdServer einstellen
- Wo liegt das Firebird-Temp-Verzeichnis?
- "echo %FIREBIRD_TMP%" in der Kommandozeile zeigt den Pfad an, sofern dieser gesetzt ist
- sollte auf der Datenbank-Festplatte liegen
- ggf. neue Systemvariable "FIREBIRD_TMP" erstellen (z.B. "D:\FirebirdTemp\") -> Firebird.conf!
- Verzeichnis manuell anlegen
- FirebirdServer neu starten (Achtung: beim Neustart werden alle Verbindungen getrennt)
- Wird die Datenbank regelmäßig restrukturiert?
- Wird der FirebirdServer nach dem Restrukturieren neu gestartet?
Datenbank
- Wo liegt die Datenbank?
- nicht auf die Systempartition legen, sondern auf eigenständige Festplatte
- Ist ein Virenscanner aktiv?
- Ausnahmen für Greenware-Produkte definieren.
- Prozess fbserver.exe ausschließen.
- *.FDB ausschließen.
- TempDirectories (firebird.conf)-Ordner (default = Windows /temp) ausschließen.
- Performance bei ausgeschaltetem Echtzeit-Scanner messen
- Ist die Volumenschattenkopie (Dienste) deaktiviert? (services.msc)
- stoppen und deaktivieren
- Wo liegt die Windows-Auslagerungsdatei für den virtuellen Arbeitsspeicher? (pagefile.sys)
- ggf. von C:\ auf D:\ verschieben (Systemeigenschaften > Erweitert > Virtueller Arbeitsspeicher > Ändern…)
Vermeidung von Datenverlust: http://www.firebirdsql.org/manual/de/qsg2-de-safety.html
Deaktivieren von Forced Writes unter Windows
Firebird wird per Default mit Forced Writes (Synchrones Schreiben) installiert. Geänderte und neue Daten werden
hiermit sofort auf die Festplatte geschrieben.
Es ist jedoch möglich, eine Firebird Datenbank so zu konfigurieren, dass ein asynchrones Schreiben verwendet wird,
wo Änderungen und neue Daten vorerst im Cache gehalten werden, um diese dann durch das I/O Subsystem des
Betriebssystems, periodisch auf die Festplatte zu schreiben. Die allgemeine Bezeichnung für diese Konfiguration
ist Forced Writes Off (= deaktiviert). Auf diese Konfiguration wird manchmal zurückgegriffen, um große
Batch-Operationen zu beschleunigen.
Die große Warnung ist nun: Deaktivieren Sie Forced Writes auf einem Windows Server nicht. Es wurde beobachtet,
dass auf Windows Server Plattformen der Schreibcache nicht auf die Festplatte geschrieben wird, bis der
Firebird Dienst gestoppt wird. Neben Stromausfällen gibt es einfach zu viele Situationen auf einem Windows
Server, die schief gehen können. Bei einem Absturz bekommt das I/O System keine Möglichkeit die Änderungen
noch auf die Festplatte zu schreiben und somit sind diese Änderungen bei einem Neustart verloren.
Superserver-Firebird konfigurieren: Datei Firebird.conf
Diese Schalter beeinflussen die Performance:
→ TempCacheLimit (default 64MB)
→ TempBlocksize
→ DefaultDBCachePages: (default 2048 pages)
→ CpuAffinityMask: (1 default = 1 CPU), 3 for 2 CPUs/cores; 15 for 4 CPUs/cores; 255 for 8 CPUs/cores.
(http://www.firebirdsql.org/manual/qsg25-appx-architectures.html)
Ab 8GB RAM:
Einstellungen für Superserver 2.1 32 bit
DefaultDbCachePages = 9999
TempBlockSize = 3048576
TempCacheLimit = 267108864
Einstellungen für Superserver 2.1 64 bit
DefaultDbCachePages = 9999
TempBlockSize = 3048576
TempCacheLimit = 467108864
Einstellungen für Superserver 2.5 64 bit
DefaultDbCachePages = 9999
TempBlockSize = 2048576
TempCacheLimit = 967108864
CpuAffinityMask = (abhängig von der Anzahl CPUs s.o.)