Performance Problem

Forum für neue Firebird-Anwender.

Moderator: thorben.braun

lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

Hallo,

ich habe leider, trotz vieler "Verbesserungen" noch immer ein perfomance Problem mit Firebird 3.0. Ich habe schon vieles geändert, die Situation ändert sich leider jedoch nicht.
Wir betreiben eine kleine Firma, in der vier Rechner, mit einer Netzwerkfähigen Software (Amicron Faktura) zeitgleich arbeiten sollen. Sie greifen alle auf eine Firebird 3.0 Datenbank zu. Weiterhin gibt es dieverse Geräte im privaten Haushalt, die am gleichen Netzwerk hängen.

Die Umgebung sieht so aus:

Als Router haben wir die Fritzbox 7590. An dieser sind private WLAN Geräte und private LAN Geräte angeschlossen. Am WAN Anschluss der Fritzbox habe ich eine CAT 7 Verbindung zum NETGEAR XS708T-8-Port 10 G (extra neu angeschafft) hergestellt. Alle Firmencomputer und der Server und ein NAS Server und Drucker hängen an diesem Switch.

Als Server nutzen wir einen PC

Intel Core i7-8700 3.70GHZ
RAM 32 GB

Auf diesem Server läuft windows server 2019 essentials (extra neu angeschafft).

Es gibt leider trotz der Neuanschaffungen keine Verbesserung. Der Softwarehersteller Amicron Factura hat das Problem live gesehen, kann es sich jedoch nur so erklären, dass das Netzwerk das Problem ist.
Es gibt auch starke Schwankungen. Mal rennt das Programm, manchmal ist es sehr langsam.

Ich habe mir schon einige Videos über die Konfiguration zur Software windows server 2019 essentials angesehen. Es wird dort immer erklärt, wie man was installiert, jedoch nicht, was man wofür benötigt.
Da es ein produktives System ist, möchte ich auch nicht aufs blaue etwas probieren.

Ich würde mich über eine Hilfestellung sehr freuen.
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Da ist aber wirklich großes Rätselraten angesagt.
Meine persönlich Erfahrung ist:
Jeder Zugriff ist auf das vorhandensein von passenden Indizes angewiesen. Dafür gibt es entsprechende Analysewerkzeuge (z.B. IBExpert).
Softwareentwickler testen gerne mit kleinen Datenbanken ohne parallele Zugriffe. Da ist alles sehr schnell und man kommt i.d.R. sogar ganz ohne Indizes aus.
Später im laufenden Betrieb, wo das Datenvolumen ständigem Wachstum unterliegt rächt sich das dann wenn man Systeme ohne Indizes ausliefert.
In den allerseltensten Fällen ist das Netzwerk schuld.
Denn hat man sich mal mit einer Datenbank verbunden, spielt das Netzwerk selber nur noch eine untergeordnete Rolle.
Der Anwender ist nun immer der Dumme, da die Netzwerkspezialisten und die Anwendungsentwickler sich gerne die Probleme gegenseitig in die Schuhe schieben.

Für eine Lösung benötigst du nun einen Firebirdspezialisten der die Zugriffe analysiert und Indizes erstellt. Und das kann dann auch schon mal ins Geld gehen.
Die Leute von IBExpert oder auch andere bieten da entsprechende Dienste an.
Benutzeravatar
martin.koeditz
Beiträge: 440
Registriert: Sa 31. Mär 2018, 14:35

Hallo Lullifatz,

du schreibst, dass die Software manchmal funktioniert und manchmal sehr träge arbeitet. Zusätzlich sind private Geräte im Netzwerk aktiv. Abhängig vom Aufbau des Netzwerkes gibt es diverse Störfaktoren, die man untersuchen sollte. Z.B. haben Privatgeräte m.E. nichts im Firmennetz zu suchen. Unabhängig von Sicherheitsaspekten können Netflix oder iPhone-Updates ein Netzwerk schon mal belasten. Gerade latenzanfällige Datenbankanwendungen nehmen das übel.

Und wie bfuerchau schon geschrieben hat, sind häufig Designfehler in der Datenbank ein Problem. Auch da lassen sich mittels Untersuchungen häufig die Ursachen ermitteln.

Wenn du netzwerktechnisch und hardwareseitig alle Fehler ausschließen kannst, dann muss ggf. die Software untersucht werden.

Weiterhin viel Erfolg.
Martin
Martin Köditz
it & synergy GmbH
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Nun ja, was die sog. "privaten" Endgeräte so angeht setzt sich die Tendenz BYOD (bring your own device) anscheinend immer mehr durch. Zumal die Firmen da (erstmal) Kosten einsparen.
Den Ärger den man sich damit einhandeln kann (Ransom) glaubt man ja im Griff zu haben.
Benutzeravatar
martin.koeditz
Beiträge: 440
Registriert: Sa 31. Mär 2018, 14:35

Den Ärger den man sich damit einhandeln kann (Ransom) glaubt man ja im Griff zu haben.
Da sprichts du mir aus der Seele...
Martin Köditz
it & synergy GmbH
lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

Hallo,

vielen Dank!
Ich habe am Sonntag mal das WLAN ausgeschaltet und die privaten Geräte vom Lan Netz genommen. Es lief dann nur der Server und eine Arbeitsstation. Es gab keine nennenswerte Unterschiede.
Ich gehe auch davon aus, dass es an der Software liegt, wie jedoch bereits geschrieben, kümmert sich der Support von Amicron nicht darum, obwohl wir einen Supportvertrag haben.
Das Programm IBExpert habe ich schon auf dem Server und habe da mal kurz reingesehen. Aber da ich keine Ahnung davon habe, lasse ich wohl lieber die Finger davon.
vr2
Beiträge: 213
Registriert: Fr 13. Apr 2018, 00:13

Hallo Lullifatz,

kenne Amicron in einem mittleren Netz (30-40 user plus externe Zugriffe aus anderen Firebird-DBs darauf), da läuft es solide und flott. Die Datenbank könnte zwar hier und da besser designt sein, aber bei BuchhaltungsSW darf man da nicht zu anspruchsvoll sein.

CPU und RAM sehen gut aus, das passt. Auffällig ist, dass Du die großen Schwankungen selbst dann hast, wenn Du Arbeitsplatzrechner und Server per LAN verbindest und sonst nichts los ist, richtig? Das spricht gegen Netzwerk und Indizes als Ursache. Die Indizes sind bei Version 13 auch ok, das war eher in wesentlich älteren Versionen nicht so doll.

Zunächst würde ich mal den Server unter die Lupe nehmen:

- läuft da Antivirensoftware? Backupsoftware? ein MSSQL-Server? Windows-Archivierung auf den Ordnern, wo die DB liegt? Wenn ja, alle mal ausschalten.
- geh mal auf dem Server in den Taskmanager und sortier nach CPU-Last absteigend. Hat der schon Last ohne eine Amicron-aktion?
- Starte Amicron und führe eine typische Aktion durch, die mal lange und mal schnell geht, aber immer die gleiche, damit es vergleichbar bleibt (cache warmup lassen wir mal außen vor, zumindest ab der zweiten Ausführung einer Aktion müsstest Du ähnliche Performance haben) und schau, was der Server derweil macht, außer CPU auch die anderen Ressourcen, was ist mit RAM? Denn obwohl 32GB reichlich sind, heißt das nicht, dass Firebird die nutzt, wenn Du ihn nicht entsprechend konfigurierst. Wie ist die DB in der databases.conf konfiguriert? Habt ihr die Anzahl der Pages angegeben? Was ist mit Diskzugriffen, ständig action auf der Platte?
- Wo habt ihr den tempspace hinkonfiguriert? Da wo der Server seine sortfiles hinpackt.

Dann noch zu den Daten:

- Welche Größenordnung Anzahl Sätze habt ihr in Tabelle auftrag und in artikel?
- Habt ihr eine 2.5er Datenbank einfach mit dem 3er Server in Betrieb genommen oder ein backup/restore gemacht?
- Laufen alle Aktionen mal schnell mal langsam, also zb Artikelliste durchsuchen, oder nur bestimmte?

Dann schauen wir weiter ...

Grüße, Volker
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Virensoftware bei Datenbankzugriffen kann man ausschließen.
Verwendung einer 2.5er DB mit 3.0er Server geht technisch nicht ohne Backup und Restore.
Ohne sich da tatsächlich in die Datenbank einzuklinken, die Abfrage (ggf. per Trigger) zu analysieren und auf Indizes zu prüfen ist wie das Fahren im Nebel, aber mit verbundenen Augen.

Wichtiger Hinweis aus meiner eigenen Erfahrung:
In der Firebird.config auf keinen Fall den Windows-Filecache abschalten.
Das Hauptproblem ist ja, dass beim Schließen der letzten Verbindung der FB interne Cache geleert wird und bei der ersten neuen Verbindung wieder gefüllt wird.
Hat man genug Hauptspeicher, hilft da auch der Windowsfilecache, die FB-Seiten wieder schnell zu laden.
lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

Es läuft bei uns der Winwos defender.
Ich habe den Tip mit dem Task Manager mal gemacht. Firebird erreicht eine maxilmale CPU Auslastung von 8,9%. alles Andere kommt nicht über 0,1%

Die Umstellung von Firebird 2.5 auf 3 wurde von Amcrion auf unserem System gemacht, da dabei weitere Schritte notwendig waren, die ich nicht kenne.

Ich kann nicht glauben, dass es am Netzwerk liegt, denn nur vereinzelte Arbeitsschritte sind verzögert bzw. nicht schnell genug. Das hat ein Mitarbeiter von Amicron schon selbst live gesehen und hat bestätigt, dass diese Geschwindigkeit nicht normal ist. Ich versuche jetzt schon seit 2 Jahren eine Lösung zu finden.

Ich habe vor kurzem nochmals 3000 Artikel in das System importiert. Seit dem Laden die Artikel auch langsamer. Man hat so das Gefühl, dass die Datenmengen das System immer langsamer werden lassen.

Nochmal zu den Schwankungen. An der einen Arbeitsstation wird im Grunde den ganzen Tag gearbeitet ( 08:00 bis 23:00 Uhr). In dieser Zeit hat man an einzelnen Tagen mal Glück, dass es für gefühlt 1 Stunde mal schnell läuft.
Für mich ist das nicht zu verstehen.
vr2
Beiträge: 213
Registriert: Fr 13. Apr 2018, 00:13

Es sind noch zu viele Unbekannte. Lass uns die mal schrittweise auflösen.

- Du sagst, nur vereinzelte Arbeitssschritte sind verzögert. Welche sind das? Am liebsten den einfachsten davon, bei dem das Problem auftritt.
- Hast Du nur bei diesen bestimmten Aktionen die Performanceprobleme und bei anderen nicht? Wenn ja, bei welcher Aktion nicht? Wieder am liebsten die einfachste.
- Wenn Du testest - konzentrierst Du Dich bei den Tests auf eine immer gleiche Aktion, die mal schnell, mal langsam läuft, und wiederholst die, sozusagen als benchmark? Denn sonst wird es komplexer und uU schwieriger zu deuten.
- wie viele Artikel sind im System, wieviele Aufträge? Nur Größenordnung, also zb 5K Artikel, 100K Aufträge

Grüße, Volker
Antworten