Hallo allerseits,
ich brauch mal etwas Hilfe. Wir haben seit Jahren intern einen Server laufen für die CAO-DB. Das lief einwandfrei und ohne Probleme. Performance war auch kein Thema.
Aus strategischen Gründen wollten wie die DB jetzt auf unseren externen Server auslagern. Das war technisch wenig Aufwand und die MariaDB 10.11 war sofort einsatzbereit.
Verbindungen klappen auch. Soweit alles gut.
ABER: Die Performance ist grottig. Es dauert jetzt gefühlt alles x-fach länger.
Der Server hat genug Power (31 Cores / 128 GB RAM / endlos SSD Speicher) und er langweilt sich auch.
Sind das einfach "nur" Latenzprobleme? und "Normal"? Wir sind mit 250Mbit angebunden. Also auch hier kein wirkliches Bottleneck.
Wäre über jede Hilfe/Feedback/Idee dankbar.
Performance Externe MariaDB
Re: Performance Externe MariaDB
Servus,
aus meiner Erfahrung ja, wir haben CAO über VPN begraben und sind notgedrungen auf RDP umgestiegen. Bzw. eine Kassa läuft über VPN, weil das Zertifikat nicht über RDP geht (da ginge nur VNC und das ist über VPN auch lahm, die Kassa an dem Standort ist aber sehr selten in Verwendung und dafür reicht es).
Es sind technisch halt pro Klick mehrere MySQL-Abfragen, die teilweise voneinander abhängen. Wenn jetzt jede SQL-Abfrage 20ms statt 2ms braucht (aus dem Bauch geschätzte Werte), dann summiert sich das auf.
Das Thema haben andere Systeme auch, du erkennst es daran, dass die Hersteller für Fernzugriff nur RDP supporten. Oder die Systeme arbeiten mit einer API im Hintergrund, die mit wenigen Verbindungen auskommt, dazu ist dann wieder eine zusätzliche Serverkomponente notwendig.
Wie läuft die Verbindung sonst? Eventuell lässt sich mit Anpassungen an der MTU noch was im VPN verbessern. MySQL direkt übers Internet läuft hoffentlich verschlüsselt, sofern das der Fall ist.
Stefan
aus meiner Erfahrung ja, wir haben CAO über VPN begraben und sind notgedrungen auf RDP umgestiegen. Bzw. eine Kassa läuft über VPN, weil das Zertifikat nicht über RDP geht (da ginge nur VNC und das ist über VPN auch lahm, die Kassa an dem Standort ist aber sehr selten in Verwendung und dafür reicht es).
Es sind technisch halt pro Klick mehrere MySQL-Abfragen, die teilweise voneinander abhängen. Wenn jetzt jede SQL-Abfrage 20ms statt 2ms braucht (aus dem Bauch geschätzte Werte), dann summiert sich das auf.
Das Thema haben andere Systeme auch, du erkennst es daran, dass die Hersteller für Fernzugriff nur RDP supporten. Oder die Systeme arbeiten mit einer API im Hintergrund, die mit wenigen Verbindungen auskommt, dazu ist dann wieder eine zusätzliche Serverkomponente notwendig.
Wie läuft die Verbindung sonst? Eventuell lässt sich mit Anpassungen an der MTU noch was im VPN verbessern. MySQL direkt übers Internet läuft hoffentlich verschlüsselt, sofern das der Fall ist.
Stefan
Re: Performance Externe MariaDB
Hallo,
bei 31 Cores, 128 GB RAM und SSD, da langweilt sich der Server aber bei einer CAO DB selbst bei einer größe von 5 GB echt rum...
Die größte CAO-Datenbank die bei uns auf den Servern liegt, hat knapp 2GB und das ist ein Einzelfall.
Wenn also auf dein Server "nur" die SQL Datenbank gehostet ist, ist der hoffnungslos überdimensioniert.
Für meine weiteren Aussagen gehe ich jetzt mal davon aus, das "nur" die SQL Datenbank darauf gehostest ist:
Das Thema ist einzig und alleine die Latenz.
Die Frage ist, wo ist der Server gehostet. Wenn der z.B. in Frankfurt steht und du dein Geschäft in München hast, dann kommt eine Latenz von ein paar ms hinzu.
Das ist phsikalisch nicht anders möglich... Außer einer schafft es schneller wie Licht zu werden, was ich aber zum jetzigen Zeitpunkt nicht glaube.
Ein VPN verlangsamt die ganze sache dann nochmal.
Daher verschlüsselt man den direkten Traffic zwischen CAO uns der SQL Datenbank. Das ist schneller wie VPN.
Allerdings muss man dafür die SQL Datenbank entsprechend einrichten.
Bei CAO kann man dann "SSL" im CAO-Admin anklicken.
Eine Latenz von 1 oder 2 ms wird es bei einem Server im Internet nie geben.
Wir haben hier in der Regel Abfragezeiten um die 10 bis 15 ms, wobei mein Geschäft in der Nähe von Düsseldorf ist und die Server in Bayern stehen.
Wenn man jedoch "alle" Artikel in der Artikeldatenbank aufruft, kann das bei über 350.000 Artikel auch schon mal 8 Sekunden dauern.
Allerdings würde das, wenn der Server im Betriebseigenen netzwerk steht, auch knapp 5-7 Sekunden dauern.
PS: Sollten auf deinem Server jedoch noch andere Dienste laufen, dann ist die Frage, wie die Dienste sich gegenseitig beeinflussen.
Dann noch eine weitere Frage:
Ich hoffe du hast nicht die Standard konfiguration einer MariaDB 10.11 auf deinem Server verwendet.
Damit würdest du den Port 3306 zum Internet aufhaben, wenn du dich ohne VPN verbindest.
Selbst wenn du Zertifikate für SSL hinterlegt hast, ist es immer noch der Port 3306 der offen wäre.
Auf den Port 3306, wirst du sehr viel anderen spoofing traffic haben.
bei 31 Cores, 128 GB RAM und SSD, da langweilt sich der Server aber bei einer CAO DB selbst bei einer größe von 5 GB echt rum...
Die größte CAO-Datenbank die bei uns auf den Servern liegt, hat knapp 2GB und das ist ein Einzelfall.
Wenn also auf dein Server "nur" die SQL Datenbank gehostet ist, ist der hoffnungslos überdimensioniert.
Für meine weiteren Aussagen gehe ich jetzt mal davon aus, das "nur" die SQL Datenbank darauf gehostest ist:
Das Thema ist einzig und alleine die Latenz.
Die Frage ist, wo ist der Server gehostet. Wenn der z.B. in Frankfurt steht und du dein Geschäft in München hast, dann kommt eine Latenz von ein paar ms hinzu.
Das ist phsikalisch nicht anders möglich... Außer einer schafft es schneller wie Licht zu werden, was ich aber zum jetzigen Zeitpunkt nicht glaube.
Ein VPN verlangsamt die ganze sache dann nochmal.
Daher verschlüsselt man den direkten Traffic zwischen CAO uns der SQL Datenbank. Das ist schneller wie VPN.
Allerdings muss man dafür die SQL Datenbank entsprechend einrichten.
Bei CAO kann man dann "SSL" im CAO-Admin anklicken.
Eine Latenz von 1 oder 2 ms wird es bei einem Server im Internet nie geben.
Wir haben hier in der Regel Abfragezeiten um die 10 bis 15 ms, wobei mein Geschäft in der Nähe von Düsseldorf ist und die Server in Bayern stehen.
Wenn man jedoch "alle" Artikel in der Artikeldatenbank aufruft, kann das bei über 350.000 Artikel auch schon mal 8 Sekunden dauern.
Allerdings würde das, wenn der Server im Betriebseigenen netzwerk steht, auch knapp 5-7 Sekunden dauern.
PS: Sollten auf deinem Server jedoch noch andere Dienste laufen, dann ist die Frage, wie die Dienste sich gegenseitig beeinflussen.
Dann noch eine weitere Frage:
Ich hoffe du hast nicht die Standard konfiguration einer MariaDB 10.11 auf deinem Server verwendet.
Damit würdest du den Port 3306 zum Internet aufhaben, wenn du dich ohne VPN verbindest.
Selbst wenn du Zertifikate für SSL hinterlegt hast, ist es immer noch der Port 3306 der offen wäre.
Auf den Port 3306, wirst du sehr viel anderen spoofing traffic haben.
Gruss Christian
_____________
_____________
Re: Performance Externe MariaDB
Hi,
das klingt stark nach Latenzproblemen, besonders wenn die Performance intern vorher gut war. Auch wenn eure Verbindung mit 250Mbit stabil wirkt, können externe Zugriffe auf eine Datenbank aufgrund der höheren Latenz spürbar langsamer sein. Ein paar Dinge, die ihr prüfen könnt:
1. **Optimierung der DB-Verbindungen**: Verbindungspooling kann helfen, die Anzahl der Verbindungen zu reduzieren.
2. **Query-Optimierung**: Überprüft, ob die Abfragen effizient sind, z.B. durch Index-Nutzung.
3. **Ping- und Latenztests**: Messt mal die Latenz vom Client zum Server.
das klingt stark nach Latenzproblemen, besonders wenn die Performance intern vorher gut war. Auch wenn eure Verbindung mit 250Mbit stabil wirkt, können externe Zugriffe auf eine Datenbank aufgrund der höheren Latenz spürbar langsamer sein. Ein paar Dinge, die ihr prüfen könnt:
1. **Optimierung der DB-Verbindungen**: Verbindungspooling kann helfen, die Anzahl der Verbindungen zu reduzieren.
2. **Query-Optimierung**: Überprüft, ob die Abfragen effizient sind, z.B. durch Index-Nutzung.
3. **Ping- und Latenztests**: Messt mal die Latenz vom Client zum Server.
Re: Performance Externe MariaDB
schmidts1982 hat geschrieben: ↑Mo 16. Sep 2024, 13:28 ...
3. **Ping- und Latenztests**: Messt mal die Latenz vom Client zum Server.
wie kann man das messen und was sind dann gute Werte?
Ganz normal mit cmd und dann ping 123 usw?