Neu SQL Server Optimierung - Wawi/WMS SEHR langsam

TobiasC

Gut bekanntes Mitglied
25. Juni 2008
154
19
Braunschweig
Hi,

wir haben große Performance-Probleme mit unserem SQL Server. Wir hatten bis vor kurzem einen Dell PowerEdge R7515 mit einem AMD EPYC 7302P 3GHz, 16C/32T, 128M Cache (155W) DDR4-3200. 128 GB Ram, SAS-SSD Raid auf dem 5 VMs liefern (Anwendungsserver für den JTL Worker sowie den Mobile Server, Backupserver, Domänencontroller, VMware und SQL Server)

Der SQL-Server (SQL 2019 - Standard) hatte hierbei 8 Cores und 48 GB RAM zugewiesen. Wir waren mit der Performance grundsätzlich zufrieden, jedoch gab es immer massive Einbrüche an Montagen. Ab ca. 1000+ Aufträgen kommt es hier zu großen Performanceeinbrüchen.

Bei uns arbeiten ca. 50 Personen (bald 60) und wir setzen komplett auf die Wawi und WMS. Wir haben ca. 65 Rechner (mit Wawi + WMS) über unsere Fläche verteilt (Bürorechner, Lagerrechner, Packtische, Notebooks.) Die Clients sind natürlich nicht alle gleichzeitig an. Zusätzlich haben wir ~25 Mobilclients (Tablets und andere Mobilgeräte für WMS).

Durch die Unzufriedenheit mit der Performance haben wir uns jetzt einen dedizierten Server allein für den SQL Server zugelegt. Es ist ein Dell PowerEdge R740 Rack-Server mit 2x Xeon Gold 6250 (je 8 Cores + Hyperthreading) und 196 GB Ram geworden. Dazu ein Raid 10 mit 6x 800 GB mixed use SAS SSDs. Auf dem AMD Epyc läuft jetzt der AW und die anderen VMs.
Der Server läuft auch wieder virtualisiert mit VMWare (16 logische CPUs und 128 GB RAM). RAM wird vom SQL Server nur ~20 GB genutzt, der Rest steht frei zur Verfügung und wird vom SQL nicht abgerufen (obwohl er ~100 GB konfiguriert hat). I/O Zugriffe halten sich extrem in Grenzen. Das 10er Raid langweilt sich quasi.

Der Anwendungsserver ist mit dem SQL Server mit 10 GbE verbunden.

Mit dem neuen Server ist das System über die Woche sehr viel schneller (quasi instant Wechsel der Reiter und auch innerhalb von max. 1 Sek die Anzeige von den Artikelpos. unter Verkauf), jedoch an Montagen wieder sehr langsam. Der Wechsel der Reiter in der Wawi ist langsam und unter Verkauf => Aufträge dauert es gefühlte Ewigkeiten bis die Artikelpositionen angezeigt werden. Der Server langweilt sich zu diesen Zeiten mit ca. 3-10% CPU Auslastung und hat dabei noch 100 GB freien Arbeitsspeicher für den SQL Server.
Das Problem scheint größer zu werden, wenn mehr Clients auf die Wawi zugreifen. Wenn nur ein Client per Terminalserver ( RDP) auf die Wawi zugreift, ist es auch mit den Auftragsmengen von Montagen etwas erträglicher, aber auch nicht mehr schnell.
Beim Erstellen der Picklisten sieht man den SQL dann schon etwas arbeiten. Da geht er auf ~50% CPU Auslastung, erstellt die Picklisten dabei aber NICHT in Lichtgeschwindigkeit.

Wir sind jetzt ziemlich ratlos und es macht so langsam keinen Spaß mehr, denn die Auftragsmengen von Montagen sind ggf. schon in ein paar Monaten die Auftragsmengen von Dienstag - Freitag und damit wäre dann die Wawi/WMS jeden Tag extrem lahm. Das ist einfach nur noch ätzend.

Bei Cost Threshold for Parallelism haben wir aktuell den Wert 50. Höhere Werte führten beim AMD Rechner zu deutlichen Verzögerungen, kleinere Werte waren auch kein Performanceboost.

Bei Maxdop hatten wir auf dem Epyc 3 und haben jetzt nur 5 eingestellt, da uns der JTL Support mitgeteilt hat, dass bei vielen Clients usw. ein geringerer Maxdop deutlich besser wäre und sie sogar bei großen Kunden mit Maxdop 1 deutlich besser von der JTL Performance fahren würden. Ein kurzer Versuch mit Maxdop 7 (Anzahl Cores / 2 - 1) war etwas langsamer von der gefühlten Geschwindigkeit als die 5. Maxdop 1 war leider auch kein Zugewinn. Bei dem Wechsel der Reiter macht das alles aber wenig Unterschied von der Schnelligkeit.
Aktuell sind 8 Tempdb files angelegt.

Die Waitstats sehen an sich sehr unproblematisch aus (soweit wir das als Laien beurteilen können). Deuten aber unserer Meinung nach nicht auf ein Hardwareproblem hin?!
(Siehe Screenshots)

Wie sind eure Server eingestellt? An welchen Schrauben könnten wir bei uns noch drehen, damit es zügiger wird. Habt ihr mit ähnlichen Problemen zu kämpfen?

Die SQL Datenbank hat ca. 20 GB und wir haben viele Artikel mit Variationskombinationen (insgesamt haben wir 14.000 Artikel und davon ca. 60% Varkombis => ganz grob geschätzt)

Über Rückmeldungen würde ich mich sehr freuen.

Viele Grüße
Tobias
 

Anhänge

  • 2021-01-26_09h13_22.png
    2021-01-26_09h13_22.png
    72,4 KB · Aufrufe: 101
  • 2021-01-26_09h13_49.png
    2021-01-26_09h13_49.png
    13,6 KB · Aufrufe: 91

TobiasC

Gut bekanntes Mitglied
25. Juni 2008
154
19
Braunschweig
Hi,

die Lösung ist sehr trivial. JTL scheint kein besonders gutes Management der Index-Dateien aufzuweisen. Bei uns fragmentieren die Indexdateien extrem schnell, so dass nach ein paar Tagen ein extremer Leistungsverlust zu spüren ist und die Usability der Wawi und auch von WMS extrem zu wünschen übrig lässt.

Das Problem lässt sich ein Glück relativ einfach lösen. Es wäre nur schön gewesen, hätte man das nicht komplett selber rausfinden müssen und JTL einen hier überhaupt nicht unterstützt hat. Wenn JTL selber keine Ressourcen (so von JTL verkündet) für den Support hat, wurde uns auch kein Servicedienstleister empfohlen, der einen bei der Lösung helfen könnte. Alles in allem scheint man bei JTL bei Problemen wirklich allein gelassen zu werden, was ich sehr traurig finde. Wir zahlen JTL jeden Monat keine kleinen Beträge und der Support ist quasi nicht vorhanden.
Selbst wenn man JTL sagt, dass es für uns keine Rolle spielt, ob die Lösung jetzt Geld kostet, erhält man keine Unterstützung. Jeder Tag mit so einem Problem führt zu HOHEN Kosten und daher sollte so ein Problem schnell behoben werden.
Ob JTL für größer werdende Unternehmen ein wirklich guter Partner ist, scheint für uns zumindest immer fraglicher.

Grüße
Tobias
 

TobiasC

Gut bekanntes Mitglied
25. Juni 2008
154
19
Braunschweig
Hi Michael,

wir haben keinen extra Support von diesem "Support-Modell" gebucht, aber wir haben aktuell 3x den JTL Shop + 15x WMS, 22x Mobile WMS & 1x Modul (Versandboxen) (Die Lizenzen sollten sich auch in nächster Zeit noch gut steigern, da wir gerade 10 weitere Mitarbeiter einstellen).

Also zahlen wir an JTL jeden Monat schon ein wenig Geld und uns ist klar, dass es bei dem Basis-Support keine Antwort in kurzer Zeit gibt, jedoch nach ein paar Tagen. Wir wären auch ohne wenn und aber bereit gewesen, Support kostenpflichtig nach Stundenabrechnung dazu zu buchen, um das Problem dann zu lösen.

Gruß
Tobias
 
  • Gefällt mir
Reaktionen: MichaelH

TobiasC

Gut bekanntes Mitglied
25. Juni 2008
154
19
Braunschweig
Hi,

bei uns hat es geholfen, die Indizes neu zu erstellen (soll laut JTL zwar auch das Problem beheben, aber nicht die eigentliche Ursache sein). Mit dem von SebiW verlinkten Skript klappt das z.B. sehr gut. Zur Not geht es aber auch einfach über die Datenbankverwaltung von JTL => Performanceoptimierung. Bei uns hat das in Situationen mit extremer Verzögerung im Reiter "Versand" oder auch unter "Verkauf" zu einer Lösung geführt.

JTL meinte eben in einem Gespräch zu mir, dass die Implementierung solcher Performance-Optimierungstools auch in einer sehr nah anstehenden Wawi-Version geplant ist.

Grüße
Tobias
 
  • Gefällt mir
Reaktionen: Mario.

SebastianB

Moderator
Mitarbeiter
6. November 2012
2.084
339
Hi,

also, die Version 1.5.40.0 wird zur "DB-Optimierung" externe Skripte nutzen, konkret das eigentliche "Standard-Skript" für solche Dinge, von https://ola.hallengren.com/. Als Lösung für ein akutes Performance-Problem ist das ein wenig die Holzhammermethode, weil durch die Optimierung der Indizes der Plan- Cache gelöscht wird - aber es funktioniert auch im Extremfall.

Grundsätzlich sollte eine "DB-Optimierung" regelmäßig laufen. Als Faustregel würde ich einmal in der Nacht die Skripte laufen lassen über den SQL Server Agent - ich denke, in die 1.6 wird es auch eine Erweiterung vom Worker schaffen, mit der wir diesen Task auch ohne SQL Server Agent nachts laufen lassen können. (Und nur der Vollständigkeit halber: Neben der Indexoptimierung gehört auch die Integritätsprüfung und das Backup zu den Dingen, die unbedingt regelmäßig laufen müssen)

Das mMn eigentlich zu Grunde liegende Problem, nämlich dass durch bestimmte Funktionen Pläne erzeugt werden, die in der Folge dafür sorgen, dass wiederum die Lieferbarkeitsabfrage sehr langsam wird, werden wir hoffentlich auch in der 1.5.40.0 lösen. Ich sage hier explizit "hoffentlich", weil sich dieses Problem nicht ganz so einfach nachstellen lässt - und nur weil es bei einem Testkunden behoben ist, heißt es noch nicht, dass es grundsätzlich bei allen Kunden helfen wird.

Wir haben einige Änderungen an der Funktionsweise der Bestandsberechnung in der 1.5.40.0 vorgenommen um eben diese Themen (schlechte Performance durch ungünstige Pläne und damit verbundene Deadlocks) in den Griff zu bekommen. Ich denke nicht, dass wir es mit der 1.5.40.0 komplett vom Tisch haben werden, aber wir sollten mit den Änderungen einen guten Schritt nach vorne kommen.

LG,
Sebastian
 

Mario.

Sehr aktives Mitglied
4. Dezember 2007
1.552
42
Prima. Ich habe die JTL-Datenbank Reparatur durchlaufen lassen und bekomme nun einen Fehler. In die Mandanten komme ich auch nicht mehr rein.Rep.jpg

Hat jemand eine Idee wie das wieder i.O. gebracht werden kann?
 

Mario.

Sehr aktives Mitglied
4. Dezember 2007
1.552
42
Ich konnte das Problem lösen. Einfach in der SQL-Datenbank in der Tabelle dbo.tOptions den Inhalt der Zeile UpdateGestartet löschen. Dann nochmals "Collation reparieren" starten und geduldig warten.
 
  • Gefällt mir
Reaktionen: recent.digital

Mike02

Gut bekanntes Mitglied
17. Dezember 2012
437
19
JTL hat dazu in einem Blogbeitrag mal die SQL Server Maintenance Solution von Ola Halgren empfohlen:
https://ola.hallengren.com/
habt ihr hier das komplette Script verwendet ?

und wie wird es genau verwendet. Was müssen wir tun damit dieses Script jede Nach um 3 Uhr durchläuft

Den Teil für BACKUPS benötigen wir eigentlich auch nicht, da bei uns alle Datenbanken den ganzen Tag über stündlich mit SQLBackupAndFTP gesichert werden.
 

SebiW

Sehr aktives Mitglied
2. September 2015
2.632
1.235
Hallo Mike, haben wir, ist aber nicht mehr nötig. JTL hat das Script zur .41 oder .42 in die Wawi eingebaut, schau am besten mal in die Changelogs.
 

Mike02

Gut bekanntes Mitglied
17. Dezember 2012
437
19
OK. Läuft das dann automatisch ?

Denn unsere Wawi war auch wieder extreme langsam und ich habe heute morgen die Performenceoptimierung manuel gestartet. Danach lief sie wieder etwas schneller
 

Mike02

Gut bekanntes Mitglied
17. Dezember 2012
437
19
Hallo,

das ist ja doof. Warum gibt es dafür keine Einstellung ind er man die Uhrzeit eingeben kann und das ganze dann einfach automatisch in der Nacht einmal durchläuft.
 
  • Gefällt mir
Reaktionen: OS8610 und Geschwind
Ähnliche Themen
Titel Forum Antworten Datum
Neu SQL Server kein Mandant auswählbar und Dienst lässt sich nicht starten Installation von JTL-Wawi 0
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu MS SQL Server auf Windows vs Linux Starten mit JTL: Projektabwicklung & Migration 9
Neu WAWI 1.9 mit SQL Server Developer User helfen Usern - Fragen zu JTL-Wawi 3
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Innerhalb einer Variable -SQL Abfrage- das Wort "fett" schreiben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Microsoft SQL unter MS365 Installation von JTL-Wawi 2
Neu SQL Abfrage, 3. Mahnstufe User helfen Usern - Fragen zu JTL-Wawi 1
Neu Variable oder SQL zum Feld "Gewinn netto" (im Auftrag) Eigene Übersichten in der JTL-Wawi 9
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
Beantwortet Hilfe bei SQL Abfrage erbeten User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu DB: kPlattform eines Auftrages ändern (SQL) - Zwecks Lagerplatzreservierung User helfen Usern - Fragen zu JTL-Wawi 0
Neu SQL prozeduren mit #temp Tabellen Eigene Übersichten in der JTL-Wawi 28
Neu Ameise Export in SQL Abfrage umwandeln User helfen Usern - Fragen zu JTL-Wawi 11
Neu Ware direkt in ein Standardlager einbuchen per SQL StoreProcedure dbo.spWarenlagerEingangSchreiben Schnittstellen Import / Export 8
Neu List & Label Vorlagen: SQL Injection Warnung umgehen um Datenquelle zu ergänzen User helfen Usern - Fragen zu JTL-Wawi 12
Neu JTL WAWI SQL Dokumentation offline Arbeitsabläufe in JTL-Wawi 2
Neu Server gelöscht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Anfägerfragen und Installtion auf ngix server Installation / Updates von JTL-Shop 13
Neu Fehlermeldung: Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 3
JTL-Datenbankverwaltung keine Anmeldung am Server - Neuinstallation - Win 10 / Win 11 JTL-Wawi 1.9 4
Gelöst Anbindung POS an Server wird verweigert Verbindung nicht möglich. Einrichtung / Updates von JTL-POS 4
Neu JTL Server bleibt bei "Wird gestartet" hängen Einrichtung / Updates von JTL-POS 2
Neu Kern Waage die im Netzwerk hängt (via Moxa NPort 5100) auf RDP Server mit WMS nutzen User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL-POS - Worker Abgleich - [Server] Customer-Call found customer: 0 + Kategorienbilder JTL-POS - Fehler und Bugs 4
JTL Shop 5 Hosting auf einem IONOS Server - Performance Allgemeine Fragen zu JTL-Shop 13
Neu JTL-ShippingLabels-Server nicht erreichbar JTL-ShippingLabels - Fehler und Bugs 18

Ähnliche Themen