frindly
Goto Top

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????

Content-Key: 150523

Url: https://administrator.de/contentid/150523

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: perseues
perseues 07.09.2010 um 17:50:18 Uhr
Goto Top
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.
Mitglied: frindly
frindly 07.09.2010 um 19:57:15 Uhr
Goto Top
hallo
interessant.
das bedeutet das ich damit die geschwindigkeit steigern kann.
muss ich dafür die datenbank komplett anhalten oder besteht die möglichkeit das
im betrieb zu ändern. das system ist im produktiven einsatz.
Mitglied: frindly
frindly 07.09.2010 um 19:57:44 Uhr
Goto Top
wie sieht das mit ändern der buffer oder des caches aus?
kann das einfluss haben?
Mitglied: perseues
perseues 08.09.2010 um 06:45:20 Uhr
Goto Top
Hallo,

nutze den Firebird selber nicht, sondern habe mich nur mal aus Neugier damit gespielt. Ich vermute aber, dass die Konfigurationsdatei einen Neustart des Firebirdserver braucht.

Grüße perseues
Mitglied: perseues
perseues 08.09.2010 um 06:49:45 Uhr
Goto Top
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
Mitglied: frindly
frindly 08.09.2010 um 09:24:50 Uhr
Goto Top
ich musste die datenbank wieder vom netz nehmen.
bei einem zugriff von 15 arbeitspläzten war die performance so schlecht,
das arbeiten nicht mehr möglich ist.
ich denke mal, das 15 arbeitsplätze eine zahl ist, die eine datenbank spielend schaffen sollte...

wo kann ich mit der fehlersuche am besten anfangen?
Mitglied: perseues
perseues 08.09.2010 um 10:33:23 Uhr
Goto Top
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
Mitglied: frindly
frindly 08.09.2010 um 13:59:38 Uhr
Goto Top
installiert ist ein debian 5.0,
ohne besonderen einstellungen, out of the box.
zusätzlich habe ich xampp aufgespielt, und betreibe hierüber ein kleines intranet.
für die dateifreigaben sorgt samba.
die systemüberwachung zeigte keine auffälligkeiten im bereich netzwerkauslastung oder festplattenauslastung.
auch nachdem firebird gestartet war.
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.

die firebird.conf datei war beim ersten versuch die gleiche, wie bei dem windows rechner.
alles default.
Mitglied: perseues
perseues 09.09.2010 um 12:58:12 Uhr
Goto Top
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
Mitglied: it-frosch
it-frosch 13.09.2010 um 13:39:48 Uhr
Goto Top
hallo frindly,

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.
face-wink

größe vom it-frosch

PS: wie groß ist die DB?
Mitglied: frindly
frindly 13.09.2010 um 14:40:20 Uhr
Goto Top
hi
unter windows lief die datenbank auch mit 2.0
kann ich die pagezise ändern ohne das ich daten verliere?
bringt das dann wirklich so viel?
Mitglied: it-frosch
it-frosch 13.09.2010 um 15:12:27 Uhr
Goto Top
hallo frindly,

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. face-wink

grüße vom it-frosch
Mitglied: frindly
frindly 13.09.2010 um 15:17:14 Uhr
Goto Top
betreibt ihr die datenbank auf auch linux?
wie sind die werte für die buffers bei euch?
Mitglied: it-frosch
it-frosch 13.09.2010 um 15:21:43 Uhr
Goto Top
hallo frindly,


betreibt ihr die datenbank auf auch linux?
face-wink Wir haben wie du Linux Firebird Server. Oder was meintest du?


wie sind die werte für die buffers bei euch?
Falls du die buffer size der DB meinst: 512
Sweep haben wir ausgeschaltet da wir manuell backup/restore machen und forced writes steht auf on.

grüße vom it -frosch
Mitglied: frindly
frindly 13.09.2010 um 15:33:49 Uhr
Goto Top
buffer 512.... ich hab die im moment auf 5000 stehen.
kann es daran liegen? das der wert zu hoch ist?
wenn ich nur mit enem nuzer drauf zugreife hab ich aber bei höheren buffers wert mehr performance...

default ist ja vom classic server 75 glaub ich.
Mitglied: it-frosch
it-frosch 13.09.2010 um 15:59:46 Uhr
Goto Top
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