Announcement

Collapse
No announcement yet.

Firebird - auf welcher Hardware?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Firebird - auf welcher Hardware?

    Hallo Leute,

    welche Hardware braucht man für Firebird?

    Wir möchten demnächst einen Firebird-Server auf Linux Basis aufsetzen. Geplant ist Linux 8.2 oder 9.0 + Firebird 1.7. Zur Zeit gibt es 35 Clientrechner. Ein Zuwachs der Clientrechner ist in absehbarer Zeit nicht geplant, aber auszuschließen ist es nicht.

    Hat jemand Erfahrungen über den Leistunghunger einer Firebird DB? Wieviel RAM? Welche CPU (AMD oder intel, Multiprozessor-System - gab' es nicht Probleme mit MP-Systemen?)?

    Ich hab' schon mal ein bißchen gegoogelt, aber irgenwie nichts dazu gefunden.

    Danke,

    Jochen

  • #2
    Hallo Jochen,<br><br>
    gleich mal vorweg, Firebird kann auch auf "alter" Hardware laufen (z.B. wenig RAM - so steht 16 MB im Firebird 1.5 Factsheet drinnen ;-), schwache CPU, ...). Wie nun der optimale Server für eine Firebird Installation aussehen kann, hängt natürlich sehr stark vom Einsatzzweck ab.<br><br>
    Beginnen wir mal mit der zu verwendenden Architektur von Firebird. Wie Du vermutlich weißt gibt es den <b>Classic</b> und den <b>Super Server</b>.
    <br><br>
    Der SuperServer ist ein multi-threaded Prozeß, d.h. jede Verbindung zur Datenbank wird innerhalb des Serverprozesses als eigener Thread behandelt. So wird z.B. ein gemeinsamer Cache pro Datenbank verwendet, d.h. der Ressourcenverbrauch ist beim SuperServer in der Regel geringer als bei Classic, jedoch besitzt der SuperServer derweil noch den Nachteil, dass dieser nicht SMP/HT-tauglich ist, d.h. wenn Du den Nutzen aus mehreren CPUs ziehen möchtest, dann ist auch in Firebird 1.5 der SuperServer noch die falsche Wahl. Ein Vorteil des SuperServers ist vielleicht, dass dieser einfacher zu administrieren ist, weil die Services API vollständig verfügbar ist, und auf dieser API setzen eigentlich alle Admin/Dev-Tools auf, um den Firebird Server zu administrieren, d.h. z.B. Benutzer anlegen, Backup/Restore, Validierung, usw ...<br><br>
    Der Classic Server hingegen erzeugt für jede Verbindung einen eigenen Prozeß, und daher ist diese Architektur von Grund aus SMP/HT-tauglich, weil es dem OS überlassen ist, wie die unterschiedlichen Prozesse (sprich Datenbankverbindungen) auf mehrere (logische) CPUs aufgeteilt werden. Gerade in einer Umgebung mit sehr vielen aktiven Verbindungen ist der Classic Server besser skalierbar, sprich man kann z.B. eine sehr ressourcenintensive Abfrage ausführen, ohne damit die anderen Verbindungen ehrheblich zu blockieren. Der Nachteil von Classic ist, dass dieser erheblich mehr Ressourcen benötigt, da nicht ein Cache pro Datenbank, sondern pro Verbindung verwaltet wird, d.h. hier muß man immer im Hinterkopf haben, dass z.B. das hinaufsetzen des Page Buffers jede Client-Verbindung betrifft, und man damit schneller mal an die Grenzen des verfügbaren Hauptspeichers gelangt. Ein weiterer Nachteil ist, dass in Firebird 1.5 Classic die Services API nur teilweise vorhanden ist (dies ist neu in 1.5, d.h. z.B. in 1.0 ist unter Classic die Services API gar nicht vorhanden), somit kann es sein, dass Du für bestimmte administrative Zwecke die Kommandozeilentools verwenden mußt, und nicht auf ein komfortables Admin/Dev-Tool zurückgreifen kannst.<br><br>
    Bis jetzt viel Geschwafel, aber diese Unterschiede sind wichtig, dass man diese kennt. Das schöne an der Sache ist, dass man z.B. mit dem SuperServer anfangen kann, und später zum Classic migrieren kann, ohne dass man z.B. an der Datenbankdatei etwas ändern muss. Einfach SuperServer deinstallieren, und Classic installieren. Wenn man die Newsgroups verfolgt, dann verwendet eigentlich jeder (inklusive die Entwickler), der ein etwas größeren System mit Firebird unter Linux verwendet, die Classic Architektur bevorzugt, diese zwar ressourcenintensiver ist (aber was kostet heute schon noch der Hauptspeicher), weil diese einfach besser skalierbar ist. Firebird 1.5 ist auch besser bei der Verwendung des Hauptspeichers geworden. Die meisten kennen z.B. die PageBuffers, aber 1.5 bietet nun z.B. auch einen Konfigurationsparameter um z.B. den max. zu verwendenden Speicher für das In-Memory-Sort Modul zu definieren. D.h. es gibt ein paar Tweaks, damit Firebird sich einfach etwas mehr RAM krallt.<br><br>
    Der schlimmste Bottleneck bei so einer Installation ist aber in der Regel das I/O System, d.h. Zugriffe auf die Festplatte sind in der Regel das langsamste im System, und danach richtet sich auch die Performance. D.h., bei sehr intensiven HDD-getriebenen Aufgaben, ist ein RAID - nicht nur aus Sicht der Datensicherheit - unbedingt zu empfehlen, da man besser in ein schnelleres HDD-System investiert, als in eine hypermoderne CPU.<br><br>
    Die Antwort zu wieviel RAM hängt von der verwendeten Architektur ab. Unter SuperServer kann man max. zu verwendenden Hauptspeicher für das Caching pro Datenbank wie folgt berechnen:
    <pre>
    PageSize * PageBuffers
    </pre>
    Für Classic:
    <pre>
    PageSize * PageBuffers * Anzahl der Verbindungen
    </pre>
    D.h. Du siehst, mit Classic schadet es nicht, wenn man einiges mehr an RAM reinsteckt. Z.B. bei einer DB PageSize von 4096 Bytes und PageBuffers von 2.048 Bytes und 35 gleichzeitig aktiven Verbindungen, kann der Firebird Server unter Classic "theoretisch" ca. 280 MB für das Caching für die eine Datenbank verwenden. Mit diesen Parametern kann man dann spielen, z.B. viele Leute verwenden eine PageSize von 8192 Bytes, ... Bei SuperServer fehlt der Faktor der aktiven Verbindungen weg, weil der Cache pro Datenbank und nicht pro Verbindung verwaltet wird.
    <br><br>
    Das schöne ist, man fängt mal klein an, und baut dann kontinuierlich die Sache aus, durch z.B. mehr RAM oder die Verwendung einer unterschiedlichen Firebird Architektur.
    <br><br>
    Ich hoffe das hilft Dir etwas weiter.
    <br><br>
    Schöne Grüße,<br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Thomas,

      das ist ja eine superausführliche Antwort. Meine Antwort wäre mit Sicherheit wesentlich kürzer ausgefallen. ;-)

      Gruß

      Torste

      Comment


      • #4
        Hallo Torsten,<br><br>
        ich faß das einfach mal als Kompliment auf. ;-)
        <br><br>
        Schöne Grüße,<br>
        Thoma
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment


        • #5
          Hallo Thomas und Torsten,

          zuerst einmal: Vielen Dank für die wirklich ausführliche Antwort. Da ich davon ausgegangangen bin, das Torsten antwortet, hab' ich die Frage etwas knapp gehalten. Torsten hatte mir zu FB bereits ein paar Fragen beantwortet. <BR>
          Nun ja, da wir einen neuen Server für FB anschaffen, hilft es mir nicht wirklich weiter.
          Diesen möchte ich nicht von Anfang an unterdimensionieren. Aber RAID kommt auf jeden Fall rein. Ansonsten wird es wohl 'untere Mittelklasse' werden, mit Option zum Aufrüsten (sprich erst mal eine CPU + 1 GB RAM).

          Ich hätte auch schon früher geantwortet, aber heute morgen hat's hier ein paar Probleme gegeben, an denen ich bis gerade eben 'gebrasselt' habe.

          Danke Jochen

          P.S. Darfst Du definitiv als Kompliment auffassen. :

          Comment


          • #6
            Hallo Jochen,<br><br>
            Torsten, Lucas und ich teilen uns hier die Arbeit, aber irgendwer ist in der Regel immer da. ;-))<br><br>
            RAID ist gut, aber damit man auch einen Performancegewinn erzielen kann, reicht es nicht, wenn es eine reine RAID 1 (aka Mirroring) Lösung ist. D.h., wenn möglich sollte es schon RAID 5 sein, dies bedeutet höhere Durchsatzraten + Ausfallsicherheit (Mirroring). Ansonsten bist Du mit einer CPU + 1GB RAM mal gut bedient, sofern sich z.B. eine zweite CPU hineinstecken läßt. Wie gesagt, ich kenne Deine genauen Anforderungen nicht, aber etwas Spielraum noch oben würde ich mir an Deiner Stelle schon offen lassen.<br><br>
            Ein konkretes Beispiel bzgl. SuperServer und Classic. Wir entwickeln hier am Institut derzeit unseren neuen Intra/Internet Auftritt mit Firebird als Backend. Da SuperServer einfacher zu administrieren ist (auch für die Studenten), haben wir nun einfach mal SuperServer unter Linux laufen, und für den Produktionsbetrieb werden wir dann auf Classic umsteigen.<br><br>
            Schöne Grüße,<br>
            Thoma
            Thomas Steinmaurer

            Firebird Foundation Committee Member
            Upscene Productions - Database Tools for Developers
            Mein Blog

            Comment


            • #7
              Hallo Thomas,

              Du darfst das auf jeden Fall als Kompliment auffassen. Das Lucas hier besonders aktiv ist kann man aber nicht gerade sagen. Dafür ist er an andere Stelle sehr aktiv (im Gegensatz zu mir). Sogesehen ist es schon eine "Arbeitsteilung". Und Du bist hyperaktiv. Im beantworten von Fragen im Entwickler Forum beschränke ich mich aber nicht nur auf IB/FB.

              In der Firma hatten wir bis vor kurzem unter Linux den SS 1.02 laufen (ohne mein Wissen - lokal läuft bei mir 1.5 classic bzw. SS unter Windows). Mit dem Linux - SS haben wir bei umfangreichen Skripts erhebliche Probleme gehabt. Der Server ist beim Disconnect abgeschmiert und hat gleich die Datenbank mit ins Nirvana genommen. Beim Classic-Server geht der Disconnect zwar auch gelegentlich schief aber die Datenbank wird nicht beschädigt. Mit FB 1.5 hatte ich leider noch keine Zeit für umfangreiche Tests.

              Tschau

              Torste

              Comment


              • #8
                Hallo Thomas,

                selbstverständlich RAID 5, (sogar SCSI). Aufrüstung einer zweiten CPU ist möglch, Speicher aufrüstbar auf 4 GB (ECC-Speicher). Auf das RAID-Array soll nur die Datenbank. Deshalb wird es erst mal mit drei Platten (U160 oder U320, 36GB, 10000 U/Min) auskommen müssen.

                Zu den Anforderungen kann ich nicht so viel sagen, da ich die bestehenden Paradox-Datenbanken nicht als Maßstab nehmen kann. Ich habe bei den Paradox Tabellen auf etliches verzichtet, um das Ganze halbwegs schnell zu halten.

                Ich denke die Hauptarbeit für die Firebird wird in der Bereitstellung bestimmter Daten bestehen, die aber zum großen Teil aus unserer informix DB stammen. Diese Tabelle besteht im Schnitt aus 1000 bis 1500 Datensätzen (knapp 40 Felder, inklusiv mehrerer größerer char Felder) und soll alle 5 Minuten komplett neu aufgebaut werden. Mit Paradox dauert das ca. 60 Sekunden, wobei die meiste Zeit tatsächlich für das Einfügen der neuen Datensätze verbraucht wird.

                Danke nochmals und schöne Grüße an Torsten,

                Joche

                Comment


                • #9
                  Hallo Jochen,

                  schönen Gruß zurück.

                  Torste

                  Comment


                  • #10
                    Hallo Jochen,<br><br>
                    dann hast Du einen Server, den sich vermutlich einige (viele) Personen für eine Firebird-Server-Installation wünschen würden. ;-)
                    <br><br>
                    Schöne Grüße,<br>
                    Thoma
                    Thomas Steinmaurer

                    Firebird Foundation Committee Member
                    Upscene Productions - Database Tools for Developers
                    Mein Blog

                    Comment

                    Working...
                    X