Firebird Datenbank schlechte Performance unter Linux
Nach Umzug von Windows auf Linux massives Performance Problem
Hallo
ich hab eine Firebird Datenbank von Windows Server nach Linux umziehen lassen.
Der Windows Server war Dualcore, Firebird Superserver 2 und der Linux Rechner ist Quadcore auch Firebird Superserver 2
Nach dem Einlesen der Datenbank hat sich der erste Benutzer angemeldet und war von der Geschwindigkeit begeistert.
Nachdem sich jetzt alle Nutzer eingeloggt haben, ist die Performance extrem schlecht. Es handelt sich um 15 Nutzer,
also nicht grad eine riesen Menge.
Mit gfix -buffers hab ich die zahl der buffer schon auf 30000 raufgesetzt.
Aber bisher ohne grosse Wirkung.
Hat jemand eine Idee????
Hallo
ich hab eine Firebird Datenbank von Windows Server nach Linux umziehen lassen.
Der Windows Server war Dualcore, Firebird Superserver 2 und der Linux Rechner ist Quadcore auch Firebird Superserver 2
Nach dem Einlesen der Datenbank hat sich der erste Benutzer angemeldet und war von der Geschwindigkeit begeistert.
Nachdem sich jetzt alle Nutzer eingeloggt haben, ist die Performance extrem schlecht. Es handelt sich um 15 Nutzer,
also nicht grad eine riesen Menge.
Mit gfix -buffers hab ich die zahl der buffer schon auf 30000 raufgesetzt.
Aber bisher ohne grosse Wirkung.
Hat jemand eine Idee????
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150523
Url: https://administrator.de/forum/firebird-datenbank-schlechte-performance-unter-linux-150523.html
Ausgedruckt am: 12.04.2025 um 11:04 Uhr
16 Kommentare
Neuester Kommentar
der Firebird Superserver ist nur ein einziger Prozess, der von Multicores ausgebremst wird. Der Servertask sollte an einen Prozessor gehängt werden siehe Punkt 6 d. Oder Du steigst auf den Classicserver um Classic Server vs. Superserver.
also RAM und dessen Verwaltung und Einteilung hat bei allen DBs Auswirkungen, egal ob PostgreSQL, MySQL oder auch Firebird. Wie Dein Firebirdserver auf diese Einstellungen reagiert kann ich Dir nicht sagen, aber schau mal in den Dokus im Netz bspw. bei www.firebirdsql.org/ nach.
Grüße perseues
Grüße perseues
ich würde beim Betriebssystem anfangen. Welche Distri ist installiert? Ist es eine spezielle Serverversion (wie bspw. Ubuntu-Server-Edition) mit ensprechenden Voreinstellungen? Sind keine unnützen Dienste installiert? Lassen sich mit Tools wie z.B. "Top", "mpstat" und "netio" Flaschenhälse ausmachen? Auch würde ich mal in der Doku vom Firebirdserver nach Tuninginfos schauen. Was sagt denn der Hersteller der Anwendung zum Betrieb mit Linux? Vielleicht hat der ja dazu Erfahrungen und damit Empfehlungen.
Grüße perseues
Grüße perseues
Setz mal die "CPU Affinity option" nach den Empfehlungen für Multicore Systeme und schau, ob sich was bessert. Sieh Dir mal den Tipp 6 c DefaultDbCachePages an. Ich würde die dort genannten Anpassungen bezüglich des Rammsettings in der firebird.conf mal ausprobieren. Ansonsten wüßte ich aus dem Stehgreif nicht, wo man noch schrauben könnte.
Grüße perseues
Grüße perseues
hallo frindly,
wir arbeiten mit einem Firebird Classic Server 1.5 auf Linux (SLES 10) mit durchschnittlich 80 Usern.
Wir haben bei der Installation die xinetd.conf anpassen müssen. Die DB hat die größte Pagesize (8k).
Den Superserver solltest du wieder deinstallieren und den Classic Server installieren.
Ist nur retorisch, aber bist du sicher das deine DB für Firebird 2.0 geeignet ist?. Wenn ihr unter Windows schon unter der 2.0 wart, vergiss die Frage.

größe vom it-frosch
PS: wie groß ist die DB?
wir arbeiten mit einem Firebird Classic Server 1.5 auf Linux (SLES 10) mit durchschnittlich 80 Usern.
die cpu last ist auf allen 4 cpu's gleichmässig verteilt , wenn alle benutzer angemeldet sind so ca. 30-40% auf den Kernen, schwankend.
Bei uns liegt die CPU Last bei max. 14%, dann läuft aber schon ein größerer Report über die db und es wird spürbar langsam im System.Wir haben bei der Installation die xinetd.conf anpassen müssen. Die DB hat die größte Pagesize (8k).
Den Superserver solltest du wieder deinstallieren und den Classic Server installieren.
Ist nur retorisch, aber bist du sicher das deine DB für Firebird 2.0 geeignet ist?. Wenn ihr unter Windows schon unter der 2.0 wart, vergiss die Frage.
größe vom it-frosch
PS: wie groß ist die DB?
hallo frindly,
gbak -c -o -P 8192 backupfile restorefile
Schau dir mal den flamerobin an falls du ihn nicht schon verwendest.
grüße vom it-frosch
unter windows lief die datenbank auch mit 2.0
dann ist ja alles ok.kann ich die pagezise ändern ohne das ich daten verliere?
Natürlich. Du machst Backup und das Restore mit der neuen pagesize.gbak -c -o -P 8192 backupfile restorefile
bringt das dann wirklich so viel?
Die Datenbank wird logischer Weise größer aber wir haben die Erfahrung gemacht das es auch schneller wird.Schau dir mal den flamerobin an falls du ihn nicht schon verwendest.
grüße vom it-frosch
hallo frindly,
Wir haben wie du Linux Firebird Server. Oder was meintest du?
Sweep haben wir ausgeschaltet da wir manuell backup/restore machen und forced writes steht auf on.
grüße vom it -frosch
betreibt ihr die datenbank auf auch linux?
wie sind die werte für die buffers bei euch?
Falls du die buffer size der DB meinst: 512Sweep haben wir ausgeschaltet da wir manuell backup/restore machen und forced writes steht auf on.
grüße vom it -frosch
Ich weiß nicht ob es an dem buffers Wert liegen kann.
An deiner Stelle würde ich das ganze Problem versuchen einzugrenzen.
Hat sich beim Datenbankzugriff außer dem Server irgend etwas geändert?
Geht ihr über den Server namen oder die IP? Namesauflösung?
Wie viel RAM hast du denn drin? 64Bit oder 32Bit CPU?
Ansonsten die Dinge die perseues schon sagte.
Was meintest du eingentlich mit "nachdem die Datenbank eingelesen war".
Normaler Weise läuft der Umzug:
1. Backup der DB auf dem Windows Server
2. Restore der DB auf dem Linux Server.
3. Validation und fertig
grüße vom it-frosch
An deiner Stelle würde ich das ganze Problem versuchen einzugrenzen.
Hat sich beim Datenbankzugriff außer dem Server irgend etwas geändert?
Geht ihr über den Server namen oder die IP? Namesauflösung?
Wie viel RAM hast du denn drin? 64Bit oder 32Bit CPU?
Ansonsten die Dinge die perseues schon sagte.
Was meintest du eingentlich mit "nachdem die Datenbank eingelesen war".
Normaler Weise läuft der Umzug:
1. Backup der DB auf dem Windows Server
2. Restore der DB auf dem Linux Server.
3. Validation und fertig
grüße vom it-frosch