![]() |
AW: Firebird optimal einstellen
Wieso weshalb warum Dialect1 darfst du mich nicht fragen. Das hat die Firma Vario zu verantworten?
Das langlaufende offene Tranaktion waren kann ich bestätigen. Nach fast 24h hat er einen Job immernoch nicht fertig gemacht gehabt und ich habe dann abgebrochen. Darum nun auch der Thread hier. Laut meinen Recherchen denke ich mal das ihr mir helfen könnt. Die Firma Vario meinte ja ich sollte bis November warten erst dann hätte der "Firebird Spezialist" Zeit für uns. |
AW: Firebird optimal einstellen
Zwischen der nächsten gestarteten und der ältesten Transaktion liegen 6000 Transaktionen. Da ist wirklich etwas faul. Bei einem Vorgang sollten keine 6000 Tranaktionen gestartet werden. Zudem sieht es aus, als ob diese nicht abgeschlossen werden. Viele offene Transkationen sind Gift für Firebird. Man solte sich die Abfragen mal ansehen.
|
AW: Firebird optimal einstellen
Wo soll ich da jetzt am Besten anfangen, was man normal über private Kanäle versucht zu erklären ... ;-)
Grundsätzlich bin ich der Meinung, dass man heutzutage viel zu schnell mal in Richtung SSD geht, was in der Regel dann das echte Problem halt verschleiert. Man kann mit rotierenten Platten locker Umgebungen mit > 100 Benutzer bedienen, vorausgesetzt:
Server-Hardware ist meistens da. Da läßt man sich nicht lumpen, ist ja Ehrensache. ;-) Aus meiner Erfahrung haperts immer, na vielleicht zu 90%, an den anderen Sachen. Ein Steckenpferd ist SQL Performance. Es gibt nicht grundlos Bücher die sich rein mit diesem Thema beschäftigen. Firebird ist hier keine Ausnahme. Warum auch. Ich hab schon Umgebungen gesehen, die mit < 10 Usern eine potente Umgebung in die Knie bekommen haben. Zurück zum Problem des Thread-Erstellers: Da er 2.5 einsetzt, hat er bzgl. dem Monitoring jegliche Möglichkeiten, ohne dabei den Softwarehersteller zu brauchen, da das schön transparent mit den Monitoring-Tabellen und der Trace API möglich ist. Es gibt auch Tools dafür, die hier einem den Einstieg enorm erleichtern. Ich mach jetzt keine Werbung ... ;-) Mit diesen Mitteln hat man sehr, sehr oft in 15 Minuten die Top-Hitters auf SQL Ebene identifiziert, sofern man in diesem Zeitraum eine repräsentative Last erzeugen kann. Die langlaufende Transaktion (OAT) sollte in MON$TRANSACTIONS auftauchen. Oft ist das "Problem" mit der OAT einfach die Verwendung von AutoCommit in der Client-Anwendung, die in der Regel im Hintergrund mit einem COMMIT RETAINING abgeschlossen wird, was die Transaktion physisch so richtig nicht beendet. Wo wir wieder beim Thema "Transaktionsteuerung" wären. Auf der Settings-Ebene gibts dann halt noch Themen wie: Erhöhung von PageBuffers, In-Memory Sort Space, HashSlots (vor allem wichtig für Classic/SuperClassic) etc. Bei allen diesen Themen darf man nicht vergessen, dass auch noch der OS Filesystem Cache da ist ... Ach ja, eine Transaktion-ID Differenz von 6000 ist Kindergarten. Das merkt man an der Performance rein gar nicht. Spannend wirds im 6 oder 7-stelligen Bereich |
AW: Firebird optimal einstellen
Danke tsteinmaurer
du sprichst mir aus der Seele, ich bin ja im IT Bereich nicht unerfahren aber mit Firebird steck ich in den Kinderschuhen. Das man mit SSD erstmal verschleiert unterschreibe ich dir. Wie würdet ihr nun vorgehen. Die Tools sagen mir erstmal alle nichts und auch nicht wie man diese handhabt. Wie sollte man die Caches einstellen usw damit man erstmal mit den Teil wirklich weiterarbeien kann. Da es eine ERP ist und wir derzeit 2 Artikel mit jeweils 2078 Kinderartikeln haben sollten die erstmal in den Shop hochgeladen werden. Dazu hat er zuletzt in 24h es nicht geschafft. Wir sind hier am Anfang und wenn wir es so durchziehen muss er später auch mal 100 Artikel mit jeweils 2078 Kinder hochladen können. Ich denke hier müssen die Caches noch besser werden damit er schneller wird. Beim erstellen dieser konnte ich ja auch schonmal was rausholen wie im 1. Post. Was sollte man erstmal nehmen Super - Classic oder SuperClassic? Was empfiehlt ihr? Weil dann kann ich die Caches mal optimieren. Falls ihr hier eine empfehlung habt wäre ich auch dankbar. Gruß und Danke schonmal an allen hier in der Runde chris |
AW: Firebird optimal einstellen
Die Ursache der Geschwindigkeitsprobleme scheinen mir eher auf Seite der Anwendung zu liegen. Das kann verschiedenste Ursachen haben. Von der Struktur in der die Daten erfasst sind (z.B. in welche Kategorie bestimmte Artikel gehören, Einstellungen wie diese bei der Kalkulation zu berücksichtigen sind, usw.) bis zu Schwächen beim Entwurf der Datenbankstruktur. Letzlich kann nur der Hersteller der Software den Support liefern. Wenn schon jetzt in der Einführungsphase kein ausreichender Support geliefert werden kann, wie soll das erst bei Störungen im laufenden Betrieb funktionieren? ERP-Systeme gibt es reichlich am Markt, da sollte man sich die Frage stellen, ob man die richtige Entscheidung getroffen hat und welche Alternativen zu diesem Zeitpunkt noch bleiben.
|
AW: Firebird optimal einstellen
@csaeum: Ich kenn das ERP nicht, noch was eine "Variante" in diesem ERP ist. Solange man das Problem nicht eingrenzen bzw. genauer beschreiben kann, werden wir hier in einem öffentlichen Forum keine Chance haben dir zu helfen. Wie ich vorher schon geschrieben habe liegt es meistens an der Anwendung, einem schlechten physischen Datenmodell (fehlende Indizes ...) etc.
Aus meiner Sicht kannst du ohne der Unterstützung des Herstellers folgendes machen:
Sofern die ersten 4 Punkte nicht den erwarteten Erfolg bringen, dann läufts im Prinzip darauf raus, dass man mit dem Monitoring dem Hersteller die Hotspots/Probleme aufzeigt. Spreche hier aus Erfahrung ... Ich hoffe, dass dir das jetzt konkret genug war. :thumb: |
AW: Firebird optimal einstellen
Danke tsteinmaurer
das ist mehr wie ich gedacht habe: Ich habe nun die DefaultDbCachePages = 2048 gesetzt. Nun muss ich noch die Buffers auf 2048 setzen. Kann ich das im laufenden Betrieb machen?
Code:
Werde mal berichten wie es läuft.
gfix.exe -buffers 2048 DB
|
AW: Firebird optimal einstellen
DefaultDbCachePages = 2048 in firebird.conf wird nur dann verwendet, wenn auf Datenbankebene Page Buffers = 0 ist. Wenn du aber den Wert auf Datenbankebene mit gfix setzt, dann kommt der Default in firebird.conf nicht zum Zuge. Aber da du beide Werte gleich setzt ist es egal. ;-)
Ja, du kannst den Page Buffers mit gfix während des Betriebs setzen, aber diese Änderung wird erst für neue Connections wirksam, d.h. bestehende Connections bleiben davon unbetroffen. |
AW: Firebird optimal einstellen
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. |
AW: Firebird optimal einstellen
Hallo Holger,
Kurze Anmerkung zu: Zitat:
Man kann aber Firebird mitteilen, dass man keinen Filesystem Cache verwenden möchte, was bei vergleichbaren Benchmarks wo man sich mit dem PageBuffers Wert spielt, durchaus ratsam ist. LG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz