Moin,
kleine Anmerkungen aus meiner Sicht:
SSDs bringen gerade bei Firebird immer Vorteile, die man auch durch optimierte Programmierung nicht aufholen kann. Wir gehen aber eh davon aus, das man nicht irgendwelche sinnlosen SQLs auf die Datenbank loslässt, wobei das natürlich in erster Linie in der Verantwortung des Softwareherstellers liegt. Man sollte aber zuverlässige Enterprise SSD Hersteller setzen, die auf eine Schreibleistung und Haltbarkeit garantieren, dann aber trotzdem regelmäßig die SSD gegen neue austauschen. So ähnlich wie ein Ölwechsel beim Motor.
Wir bekommen regelmäßig Rückmeldungen durch den Benchmark in der IBExpert Vollversion, die einen realen Firebird Datenbanktest abbildet mit 10 parallelen
Threads. Man bekommt am Ende 2 Messwerte, einen für Firebird mit extrem kleinem Cachebuffer=50 und einen für normale Einstellung =5000
Den mit 50 Buffers nennen wir Drive Index, weil dabei hundertausende Pages von der Platte gelesen oder wieder zurückgeschrieben werden, bei der größeren Einstellung
passiert kaum was auf der Platte, daher ist da in erster Linie Anbindung CPU/Mainboard/
Ram wichtig, den Wert nennen wir CPU Index.
Aktuelle Standardwerte liegen bei den Kunden zwischen 5 % und 40 % der Leistung, die unser IFS Referenzserver vor 4 Jahren hatte und die wir daher auf 100% referenziert haben. Der aktuelle IFS Basic Referenzserver hat einen Driveindex von mindestens 250% und einen CPU Index von mindestens 150%, Kostenpunkt dafür bei uns ab ca. 1500 €, ausgelegt für bis zu 100 User und bis 50GB Datenbankgröße.
Oder mit anderen Worten: Der gleiche Test, der auf der Maschine mit 5% Leistung 1000 Sekunden braucht, läuft auf dem aktuellen Server in 20 Sekunden durch.
Wenn du das auch mal testen willst und schon eine aktuelle IBExpert Vollversion hast, findest du das unter services - Benchmark
Wir schalten dir ggf auch gerne mal eine Tageslizenz kostenlos frei, damit kannst du den Wert auch ohne aktuelle IBExpert Vollversion ermitteln (Anfrage dafür gerne an
sales@ibexpert.com, Ihr braucht dafür aber einen kostenlosen Account in unserem Downloadcenter).
Sehr wichtig: im Benchmark als Connectionstring immer einen Remotestring angeben, also mit servername: davor, ggf auch
localhost: , sonst verfälscht der Test das Ergebnis.
Ale angezeigten Ergebnisse, neben denen nicht Drive Index oder CPU Index steht, sind Zeiten in Sekunden.
Wichtige Erkenntnisse aus dem Benchmark:
Der Classic bzw Superclassic Server ist meistens langsamer. Ursache: Firebird Datenbankoperationen sind 99% reine Byteschubserei und die CPU Berechnungen sind relativ lächerlich, so das mehrere Kerne kaum vorteile bringen, sondern meistens Nachteile, denn der Benchmark verursacht auf dem Superserver ca. 14 GB Lese und Schreib Operationen und auf dem Classic bzw Superclassic ca. 37 GB Lese und Schreib Operationen. Da der Test 100% reproduzierbar ist ist das auch überall nachvollziehbar und man sieht im Taskmanager, wie schnell die Bytes gelesen und geschrieben werden.
Wenn du nun auf einer Festplatte 100MB Lese und Schreibleistung pro Sekunde hast, wirst du dir einfach ausrechnen können, warum die SSDs mit bis zu 600MB pro Sekunde schneller sind. Da auch noch die Datenträgerlatenz dazu kommt (schnelle Festplatten haben 5ms durchschnittliche Zugriffszeit=200 IOPS, brauchbare Enterprise SSDs haben 50000 IOPS oder noch mehr) und die aufgrund der Schreibweise des Firebird Systems extrem wichtig ist, wirst du auch hier eine wichtige Unterscheidung feststellen. Und lass dich nicht täuschen, RAID Controller (auch mit SSDs dahinter) sind für Firebird meistens deutliche Bremsklötze, externe Storagesystem machen das ganz noch schlimmer (viel mehr Details gibt es dazu auch bei uns in der Profiworkshops).
Wenn du den Benchmark ausführst und in der CPU nahezu keinerlei Last sehen wirst, ist der Grund sehr einfach: Die CPU wartet auf den lahmen Datenträger.
Sehr interessant dagegen: Der IBExpert Benchmark mit Firebird 3.0 ist ca. 25% schneller als der benchmark mit Firebird 2.5. Es ist bei FB3 also wirklich noch mal ein Leistungsschub zu erwarten, wenn man Multiusermessungen macht. Im Singleuserbetrieb wird das aber kaum feststellbar sein, ist aber eigentlich auch unter fb25 schon schnell genug, wenn man nicht unsinnige SQLs ausführt oder bescheuerte Datenbankstrukturen hat.