Firebird 4 Superserver - Performance
N'Abend zusammen.
Ich hätt' da mal ne Frage an diejenigen, die sich mit Firebird als Datenbank-Server und der Entwicklung von entsprechenden Applikationen ein wenig besser auskennen als ich.
Einer unserer Kunden hat teils massive Performance-Probleme bei der Verwendung seiner Applikation, die mit einer Firebird-Datenbank arbeitet. Erst kürzlich wurde Firebird auf Version 4 aktualisiert und in der "SuperServer Architecture" installiert. Nun fiel auf: Der Firebird nutzt nur einen von vier virtuellen Cores.
Bei der Suche nach einer Lösung bin ich über "CPUAffinity" gestolpert und wir haben nach Rücksprache mit dem Software-Entwickler den Wert auf 15 gesetzt und den Firebird neu gestartet (auf eigenes Risiko, der Entwickler hat das noch nie getan). Das scheint auch tatsächlich etwas gebracht zu haben, die Applikation lädt nun die Ergebnisse auch größerer Abfragen deutlich schneller.
Im Verlauf der Recherche haben wir unzählige, auch aktuelle Artikel gefunden, in denen das Thema Performance besprochen wird. 95% der Artikel kommen zu dem Schluss, dass durch Virtualisierung "bis zu 80% der Performance" des Firebird verlustig gehen und man doch bitte für jede Firebird-Instanz idealerweise dedizierte Hardware, mindestens aber mal eine eigene VM (die natürlich inkl. Storage für brutal viele IOPS ausgelegt sein muss) zur Verfügung zu stellen hat.
Daraus resultiert meine Frage bzw. mein Verständnisproblem:
Ernsthaft? Echte Hardware anno 2022? Haben da die Entwickler der Datenbank irgendwie die Zeit verschlafen?
Wenn allein das anpassen einer .conf-Datei die "eingebaute Handbremse" lösen kann halte ich die Aussagen aus den Artikeln für irgendwie krumm.
Kann jemand mit mehr Erfahrung in diesem Bereich mich mal erleuchten, warum Firebird so "speziell" ist?
Wir reden über eine Umgebung mit max. 15 Usern und ner Datenbankgröße <1GB, betrieben auf virtuellen Windows 2022 Servern. Ich meine, ich bekomme jeden MS SQL auf vergleichbaren virtuellen Plattformen und Umgebungen "aus dem Stand" mit deutlich besserer Performance an den Start....
Danke für euren Input.
Cheers,
jsysde
Ich hätt' da mal ne Frage an diejenigen, die sich mit Firebird als Datenbank-Server und der Entwicklung von entsprechenden Applikationen ein wenig besser auskennen als ich.
Einer unserer Kunden hat teils massive Performance-Probleme bei der Verwendung seiner Applikation, die mit einer Firebird-Datenbank arbeitet. Erst kürzlich wurde Firebird auf Version 4 aktualisiert und in der "SuperServer Architecture" installiert. Nun fiel auf: Der Firebird nutzt nur einen von vier virtuellen Cores.
Bei der Suche nach einer Lösung bin ich über "CPUAffinity" gestolpert und wir haben nach Rücksprache mit dem Software-Entwickler den Wert auf 15 gesetzt und den Firebird neu gestartet (auf eigenes Risiko, der Entwickler hat das noch nie getan). Das scheint auch tatsächlich etwas gebracht zu haben, die Applikation lädt nun die Ergebnisse auch größerer Abfragen deutlich schneller.
Im Verlauf der Recherche haben wir unzählige, auch aktuelle Artikel gefunden, in denen das Thema Performance besprochen wird. 95% der Artikel kommen zu dem Schluss, dass durch Virtualisierung "bis zu 80% der Performance" des Firebird verlustig gehen und man doch bitte für jede Firebird-Instanz idealerweise dedizierte Hardware, mindestens aber mal eine eigene VM (die natürlich inkl. Storage für brutal viele IOPS ausgelegt sein muss) zur Verfügung zu stellen hat.
Daraus resultiert meine Frage bzw. mein Verständnisproblem:
Ernsthaft? Echte Hardware anno 2022? Haben da die Entwickler der Datenbank irgendwie die Zeit verschlafen?
Wenn allein das anpassen einer .conf-Datei die "eingebaute Handbremse" lösen kann halte ich die Aussagen aus den Artikeln für irgendwie krumm.
Kann jemand mit mehr Erfahrung in diesem Bereich mich mal erleuchten, warum Firebird so "speziell" ist?
Wir reden über eine Umgebung mit max. 15 Usern und ner Datenbankgröße <1GB, betrieben auf virtuellen Windows 2022 Servern. Ich meine, ich bekomme jeden MS SQL auf vergleichbaren virtuellen Plattformen und Umgebungen "aus dem Stand" mit deutlich besserer Performance an den Start....
Danke für euren Input.
Cheers,
jsysde
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4080383068
Url: https://administrator.de/contentid/4080383068
Ausgedruckt am: 23.11.2024 um 13:11 Uhr
10 Kommentare
Neuester Kommentar
Moin...
Einer unserer Kunden hat teils massive Performance-Probleme bei der Verwendung seiner Applikation, die mit einer Firebird-Datenbank arbeitet. Erst kürzlich wurde Firebird auf Version 4 aktualisiert und in der "SuperServer Architecture" installiert. Nun fiel auf: Der Firebird nutzt nur einen von vier virtuellen Cores.
jo... das ist so!
Bei der Suche nach einer Lösung bin ich über "CPUAffinity" gestolpert und wir haben nach Rücksprache mit dem Software-Entwickler den Wert auf 15 gesetzt und den Firebird neu gestartet (auf eigenes Risiko, der Entwickler hat das noch nie getan). Das scheint auch tatsächlich etwas gebracht zu haben, die Applikation lädt nun die Ergebnisse auch größerer Abfragen deutlich schneller.
aber nicht sehr viel.
Im Verlauf der Recherche haben wir unzählige, auch aktuelle Artikel gefunden, in denen das Thema Performance besprochen wird. 95% der Artikel kommen zu dem Schluss, dass durch Virtualisierung "bis zu 80% der Performance" des Firebird verlustig gehen und man doch bitte für jede Firebird-Instanz idealerweise dedizierte Hardware, mindestens aber mal eine eigene VM (die natürlich inkl. Storage für brutal viele IOPS ausgelegt sein muss) zur Verfügung zu stellen hat.
das ist si richtig!
Daraus resultiert meine Frage bzw. mein Verständnisproblem:
Ernsthaft? Echte Hardware anno 2022? Haben da die Entwickler der Datenbank irgendwie die Zeit verschlafen?
irgendwie Schon...
Kann jemand mit mehr Erfahrung in diesem Bereich mich mal erleuchten, warum Firebird so "speziell" ist?
warum, kann ich nicht sagen, die entwickler wissen aber sicher mehr
bis 20 User ist das noch machbar... allerdings sind 15 User im Netzwerk (ohne RDS) schon der Hammer!
mein Ratschlag, stell auf RDS um...
wenn du mehr Infos brauchst, Schreib mir, oder wir Telefonieren!
Danke für euren Input.
Cheers,
jsysde
Frank
Zitat von @jsysde:
N'Abend zusammen.
Ich hätt' da mal ne Frage an diejenigen, die sich mit Firebird als Datenbank-Server und der Entwicklung von entsprechenden Applikationen ein wenig besser auskennen als ich.
ok...N'Abend zusammen.
Ich hätt' da mal ne Frage an diejenigen, die sich mit Firebird als Datenbank-Server und der Entwicklung von entsprechenden Applikationen ein wenig besser auskennen als ich.
Einer unserer Kunden hat teils massive Performance-Probleme bei der Verwendung seiner Applikation, die mit einer Firebird-Datenbank arbeitet. Erst kürzlich wurde Firebird auf Version 4 aktualisiert und in der "SuperServer Architecture" installiert. Nun fiel auf: Der Firebird nutzt nur einen von vier virtuellen Cores.
Bei der Suche nach einer Lösung bin ich über "CPUAffinity" gestolpert und wir haben nach Rücksprache mit dem Software-Entwickler den Wert auf 15 gesetzt und den Firebird neu gestartet (auf eigenes Risiko, der Entwickler hat das noch nie getan). Das scheint auch tatsächlich etwas gebracht zu haben, die Applikation lädt nun die Ergebnisse auch größerer Abfragen deutlich schneller.
Im Verlauf der Recherche haben wir unzählige, auch aktuelle Artikel gefunden, in denen das Thema Performance besprochen wird. 95% der Artikel kommen zu dem Schluss, dass durch Virtualisierung "bis zu 80% der Performance" des Firebird verlustig gehen und man doch bitte für jede Firebird-Instanz idealerweise dedizierte Hardware, mindestens aber mal eine eigene VM (die natürlich inkl. Storage für brutal viele IOPS ausgelegt sein muss) zur Verfügung zu stellen hat.
Daraus resultiert meine Frage bzw. mein Verständnisproblem:
Ernsthaft? Echte Hardware anno 2022? Haben da die Entwickler der Datenbank irgendwie die Zeit verschlafen?
Wenn allein das anpassen einer .conf-Datei die "eingebaute Handbremse" lösen kann halte ich die Aussagen aus den Artikeln für irgendwie krumm.
nein, nicht wirklich!Kann jemand mit mehr Erfahrung in diesem Bereich mich mal erleuchten, warum Firebird so "speziell" ist?
Wir reden über eine Umgebung mit max. 15 Usern und ner Datenbankgröße <1GB, betrieben auf virtuellen Windows 2022 Servern. Ich meine, ich bekomme jeden MS SQL auf vergleichbaren virtuellen Plattformen und Umgebungen "aus dem Stand" mit deutlich besserer Performance an den Start....
wir haben einige Kunden mit Theorg, dort genauso- flüssig Arbeiten geht nur auf einem RDS und NVMe unterbau! der Firebird Superserver hat keine SMP Unterstützung, mit dem CpuAffinityMask Parameter wird nur der Core nicht getauscht!. Der Classic Server kann SMP, und wird warscheinlich in deinem Fall besser sein!bis 20 User ist das noch machbar... allerdings sind 15 User im Netzwerk (ohne RDS) schon der Hammer!
mein Ratschlag, stell auf RDS um...
wenn du mehr Infos brauchst, Schreib mir, oder wir Telefonieren!
Danke für euren Input.
Cheers,
jsysde
Ohne deine Software zu kennen ist die Diskussion müßig.
Hi,
ja, das ist leider so mit Firebird. Ich mußte jahrelang eine Software (orgaMAX) supporten, die auf Firebird setzte. Gab ständig massive Performance-Probleme. Zusätzlich war die Software auch noch so richtig grottig programmiert, das größere Abfragen mitunter mehrere Minuten gebraucht haben. Zum Glück bin ich davon weg.
cu,
ipzipzap
ja, das ist leider so mit Firebird. Ich mußte jahrelang eine Software (orgaMAX) supporten, die auf Firebird setzte. Gab ständig massive Performance-Probleme. Zusätzlich war die Software auch noch so richtig grottig programmiert, das größere Abfragen mitunter mehrere Minuten gebraucht haben. Zum Glück bin ich davon weg.
cu,
ipzipzap
Zitat von @jsysde:
Ich hätt' da mal ne Frage an diejenigen, die sich mit Firebird als Datenbank-Server und der Entwicklung von entsprechenden Applikationen ein wenig besser auskennen als ich.
Kann jemand mit mehr Erfahrung in diesem Bereich mich mal erleuchten, warum Firebird so "speziell" ist?
Wir reden über eine Umgebung mit max. 15 Usern und ner Datenbankgröße <1GB, betrieben auf virtuellen Windows 2022 Servern. Ich meine, ich bekomme jeden MS SQL auf vergleichbaren virtuellen Plattformen und Umgebungen "aus dem Stand" mit deutlich besserer Performance an den Start....
Wir reden über eine Umgebung mit max. 15 Usern und ner Datenbankgröße <1GB, betrieben auf virtuellen Windows 2022 Servern. Ich meine, ich bekomme jeden MS SQL auf vergleichbaren virtuellen Plattformen und Umgebungen "aus dem Stand" mit deutlich besserer Performance an den Start....
Ohne massive Unterstützung durch den Softwarehersteller wird das ein sinnloses Unterfangen werden.
Man kann mit schlechter Programmierung jedes noch so gute Datenbanksystem in die Knie zwingen. Dem kann man nur sehr begrenzt entgegenwirken. Mehr CPU Leistung, mehr IOPS, schnelleres Netzwerk und RDS können schon helfen, lösen aber das Grundproblem nicht.
Andere Softwarehersteller können das mit der schlechten Performance mit anderen Datenbanksystemen genauso.