Neu Speed Abgleich Shop 4

maydo

Sehr aktives Mitglied
28. März 2011
2.135
86
DE-Fulda
Hi,

unser Shop 4 arbeitet 2000 Artikel in 20 Minuten ab (Vollabgleich, kein Quicksync). d.h. es sind ca. 1,6 Artikel per Sekunde.
Das ist zu langsam.

Der Server ist ein root, es läuft nur der Shop drauf.

32 GB Ram
Intel i5-4590 Quad-Core
SSDs im Raid1 Verbund.

Der trödelt nur vor sich hin.
mysql an sich ist bereits optimiert.
Die Tabellen sind alle nach "initial_schema.sql" eingerichtet. (InnoDB & MyISAM)

Worker läuft mit 2000 Artikel und 5MB Filegrösse (die 5MB werden aber nicht erreicht, ca 2MB sind es im Schnitt)
Wird direkt vom lokalen Server gesendet, der wartet dann 20 Minuten für das nächste Paket, bis der Shop die Rückmeldung gibt.

An welcher Schraube kann hier noch optimiert werden ?
Wie sind eure Erfahrungswerte ?
 
Zuletzt bearbeitet:

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Oh, Ja - BITTE @JTL

Es muss doch jemanden bei euch geben der für den Shop und interne Abläufe zuständig ist, und daher genau wissen muss, wo geschraubt werden kann.
Auch bei mir tröpfelt es mit 1-2 Updates/sek. herum. CPU Last aber gerade einmal 20-30% - MySQL langweilt sich dabei zu Tode :)
Bei knapp 300.000 Artikel die täglich geupdatet werden müssen ist das untragbar.

HP ProLiant, 32GB, 2x XEON 3,3GHz, RAID1 160GB SSD
Nur DB + Shop4 auf Apache2, PHP7-FPM
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Wenn sich dein Webserver beim Abgleich langweilt, dann ist offenbar nicht der Shop der Flaschenhals.
Wie schaut es denn mit der Auslastung des Wawi-Rechners, insbesondere der MS-SQL aus?

Ich glaube ja kaum das der MS SQL was damit zu tun hat :)
Die Wawi gibt Pakete zu 400 Artikel an den Shop (erstellt in 2-3 Sekunden, übermittelt per lokalem GB Netzwerk in einer Sekunde), der bearbeitet dann aber nur 1-2 Artikel je Sekunde.
Offensichtlich nur FiFO (seriell) und NICHT mit 10-20 parallelen Threads wie es die meisten anderen Tools (bspw. Unicorn2) machen würden.
Maximale MySQL Auslastung hatte ich gerade bei 43% - DER ist also nicht das Problem.
FPM darf bei mir mit 20 parallelen Tasks arbeiten, aufgerufen werden in der Regel so um die 4-5, da hängts also auch nicht.

Der Apache sollte eigentlich auch nicht das Problem sein?!

ServerLimit 16
StartServers 3
ThreadLimit 64
MaxClients 400
MinSpareThreads 30
MaxSpareThreads 90
ThreadsPerChild 25

(Sollte da ggf doch noch geschraubt werden?)

ODER habe ich beim Shop eine Einstellung übersehen?
 

maydo

Sehr aktives Mitglied
28. März 2011
2.135
86
DE-Fulda
Der Worker müsste mehr Kerne nutzen können, aktuell wird nur einer genutzt.
Dabei verliert der Worker vielzuviel Zeit beim Packen der Artikel, die Übetragung zum Shop und das Einlesen im Shop ist nicht der flaschenhals.
Eher der Worker > max. 1 Kern.
Hier sollte unbedingt eine Veränderung stattfinden
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Nutzt du denn einen ordentlichen MSSQL-Server? Die Express-Version unterstützt doch meines Wissens nach nur einen Core.

Bitte erst genau lesen was geschrieben wurde, dann erst antworten. Es geht ihm um den WORKER und NICHT um den SQL Server.
Wenn der WORKER nur auf einem Kern arbeitet, ist es nicht relevant wie viele Kerne der SQL Server nutzt.
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Meine Antwort war nicht allein auf den letzten Kommentar von maydo bezogen, sondern auf das Gesamtthema.
Und dann spielt das durchaus eine Rolle. Wenn ich einen Komplettabgleich ohne Worker mache, habe ich nämlich genau das Problem.
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.227
205
Hallo,

fast immer ist bei Datenbanken die IO-Bandbreite der Flaschenhals, daher bitte mal während des Abgleichs auf dem Shop-Server ein "iotop" laufen lassen.

MfG

Rene
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Hallo,

fast immer ist bei Datenbanken die IO-Bandbreite der Flaschenhals, daher bitte mal während des Abgleichs auf dem Shop-Server ein "iotop" laufen lassen.

MfG

Rene

iotop war nen guter Hinweis.
Da war an ein paar Stellen noch das Logging / Errorlog aktiviert.
Durch deaktivieren derselben konnte ich die MySQL CPU-Last um knapp ~10% anheben. Was jetzt aber leider auch nicht soooo der Bringer war.

Vorher waren es 1,6 Artikel/Sek. Jetzt sind es 1,7 :)
 

maydo

Sehr aktives Mitglied
28. März 2011
2.135
86
DE-Fulda
Nutzt du denn einen ordentlichen MSSQL-Server? Die Express-Version unterstützt doch meines Wissens nach nur einen Core.

ist sql 2014 standard was bis zu 24 kerne unterstützt.
der sql ist nicht der flaschenhals, sondern der worker als prozess, dieser nutzt nur einen kern beim zusammenstellen (zippen) des paketes
z.b. 800 artikel, das zusammenstellen dauert ca. eine minute (gefühlt), das senden an shop > shopverarbeitung > rückmeldung keine 10 sekunden > dann wieder paket zippen worker < und genau hier ist der flaschenhals, die ressourcen (wenn vorhanden) mehrere kerne, sollte der worker auch nutzen.
 

maydo

Sehr aktives Mitglied
28. März 2011
2.135
86
DE-Fulda
nein kein quicksync, der normale abgleich, bei uns ist das zippen des workers der flaschenhals, der shop kommt super damit klar.

kann ich dir morgen posten, heute abend komme ich an die daten nicht mehr dran.
den webserver haben wir allerdings auch monatelang optimiert, verschiedene raids. etc.
raid 1 ssd, raid 10 ssd, raid 5 ssd.
raid 5 ssd (mdadm) war die beste speedlösung
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Also, zu Shop 4.05 habe ich jetzt ein Problem identifizieren können.

ICH habe zu meinen Artikeln (hauptsächlich DVD / BR Filme) insgesamt (!) laut tArtikelmerkmal über 456000 Einträge für Merkmale (insbesondere sind das Darsteller, Regisseure und für AudioCD auch Interpreten)

Da es JTL augenscheinlich vorzieht statt eines ggf vereinzelt notwendigen Updates bei Änderung, grundsätzlich immer erst die Merkmale eines Artikels zählt, dann alle Merkmale des Artikels löscht um sie anschließend alle erneut anzulegen (das geht zumindest aus dem Quellcode Artikel_xml.php und Merkmal_xml.php sowie den Abläufen im Server hervor) - zieht das den Server bei mir enorm herunter.
Statt eines knappen Updates des Artikels (ein einmal angelegter Artikel ändert sich bei mir nur äußerst selten), werden dann bei MIR mal so eben locker 60-100 SELECT, DELETE und INSERT durchgeführt

Dass DAS enorm aufhält ist selbstredend.

Mal schauen ob ich das nur abschalten oder komplett umbauen muss.
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Wie ich gerade leider feststellen musste, gilt dasselbe für tPreis, tPreise, tPreisdetail und tPreisverlauf.
Auch hier statt Update immer erst DELETE und INSERT (sogar für Artikel die sich seit Tagen nicht geändert haben)
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
300
Köln
hi,

die Wawi speichert nciht zu jedem Objekt, was sich daran geändert hat - dann könnte man einfach Updaten.
Wenn du nicht vorher alles löschst, wirst du gelöschte Preise, Merkmale etc. nie mehr aus dem Shop bekommen...
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
Es gibt in MS SQL als auch in MYSQL die Möglichkeit ein "Update xxx where yyy" durchzuführen.

Beispiel: "Update tartikelmerkmal set Merkmalwert = <NeuerWert> where Merkmalwert <> <NeuerWert>"

Das optimiert viele Sachen gleichzeitig. Zuerst wird nur dann etwas geupdatet was sich geändert hat, und es fallen viele DELETE und INSERT weg.
Speziell in meinem Fall wären das je nach Artikel zwischen 10 und 100 Merkmale.

Preis dasselbe: "Update tPreis set cValue = <NeuerPreis> where <NeuerPreis> <> cValue"

Unnötige Merkmale, Attribute und Preise aus der DB löschen geht per simpler Funktion (ggf 1x täglich) genau so einfach.
Delete from tPreis where kartikel not exist(select kartikel from tartikel)
vice versa

(Alle SQLs frei aus dem Kopf, ungeachtet ob die Tabellennamen und/oder Spaltennamen korrekt sind)


Ich stamme aus einer Zeit wo Computer mit 32KB RAM und wenigen kHz klar kommen mussten, daher wurde in meiner Zeit extrem Wert auf Performance gelegt.
Eine Verschwendung von Ressourcen ist ein absolutes NoGo.

Um bei meinem speziellen Fall von etwas größeren Mengen an Merkmalen zu bleiben.
Meine DB muss im Tagesdurchschnitt 1,2 Mio SQL abarbeiten. Aus meiner Sicht wären davon die Hälfte überflüssig wenn die SQL etwas anders aufgebaut würden. (Mehr Views, bessere Indize, genauere Einschränkungen)


Wie gesagt - es scheint insbesondere bei mir an diesen Stellen zu klemmen, bei ANDEREN scheinen DIESE Probleme nicht so ins Gewicht zu fallen, daher werde ICH für MICH diese Probleme selbst beheben bis ggf mal seitens JTL,bei ausreichend freier Kapazität, wieder an der Optimierung gearbeitet wird.
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
300
Köln
Hi,

Beispiel: "Update tartikelmerkmal set Merkmalwert = <NeuerWert> where Merkmalwert <> <NeuerWert>"
Das reicht nicht - wir kennen den Zustand der Objekte nicht. Wir wissen nicht, was sich verändert hat. Muss was hinzugefügt werden, muss ein Wert aktualisiert werden oder muss ein Wert gelöscht werden.

Du kannst es ruhig für dich umbauen, wie du es brauchst - wir können hier nicht optimieren. Wir müssen alle Anwendungsfälle erschlagen, insbeosndere ein Datenbankrestore in der Wawi darf und den Shop nicht aus dem Tritt bringen.
 

DITH-Shop

Sehr aktives Mitglied
8. Juli 2013
2.855
212
:D
Helau !

Problem bei MIR gelöst.
  • Update auf Shop 4.05.1
  • aus der Synchro den Preisverlauf auskommentiert da ich das nicht benötige
  • an der MySQL Konfig eine kleine Stellschraube gefunden und "gedreht" -
    Wer es vielleicht auch versuchen möchte: "innodb_flush_log_at_trx_commit" von "0" auf "2" gesetzt UND "innodb_flush_log_at_timeout" hinzugefügt mit dem Wert "2"
Ergebnis (vollständiges Update, nicht Quicksync)
VOR den Änderungen: 1 Paket mit 800 Artikel dauerte 17 Minuten
NACH den Änderungen: dieselbe Paketgröße in 58 Sekunden - WOW !!!! Damit kann ich gut arbeiten
 
Ähnliche Themen
Titel Forum Antworten Datum
Probleme mit dem Ebay-Abgleich JTL-Wawi 1.11 1
Neu Zufällige Preisanpassungen beim Abgleich mit Woocommerce User helfen Usern - Fragen zu JTL-Wawi 7
Neu Amazon Abgleich - seit 14 Uhr keine Übernahme der Bestellungen Amazon-Anbindung - Fehler und Bugs 56
Neu Keine automatische Übernahme von Änderungen in JTL trotz Abgleich? Onlineshop-Anbindung 3
Neu Fehler eBay-Abgleich eBay-Anbindung - Fehler und Bugs 19
Neu Abgleich bricht mit Fehler 503 ab Shopware-Connector 3
Worker 2.0 - Ebay abgleich - geht nicht mehr? JTL-Wawi 1.10 9
Neu Kundenkonto Abgleich - Erstattungen Shopware-Connector 0
Neu Heute wied kein Versand bei Amazon bestätigt und manueller Abgleich gibt Fehlermeldung aus Amazon-Anbindung - Fehler und Bugs 1
Neu Shop Abgleich Onlineshop-Anbindung 1
Neu Kein Abgleich zwischen WaWi und Shop seit Update möglich Onlineshop-Anbindung 5
Wawi macht keinen Abgleich mehr nach Shop Update JTL-Wawi 1.10 0
Neu WaWi verweigert den Abgleich eines Artikels in einer Sprache User helfen Usern - Fragen zu JTL-Wawi 8
Neu Probleme beim Abgleich mit dem WooCommerce-Connector WooCommerce-Connector 0
Neu Abgleich WooCommerce / JTL mit dem Connector – Fehlermeldung WooCommerce-Connector 0
Wir haben Probleme beim Abgleich mit Amazon Amazon-Anbindung - Fehler und Bugs 42
Neu Nach Update von WaWi 1.6 auf WaWi 1.10 kein Abgleich der Artikeldaten mehr möglich WooCommerce-Connector 0
Online-Shop-Abgleich Insert Anwendung Konflikt JTL-Wawi 1.10 0
Neu Abgleich läuft durch, aber keine Kategorie sichtbar Shopware-Connector 2
Neu Artikelbeschreibung / Fotos werden beim eBay-Abgleich nicht zuverlässig übernommen eBay-Anbindung - Ideen, Lob und Kritik 0
Neu Abgleich funktioniert nicht - Störung im Lizenzsystem User helfen Usern - Fragen zu JTL-Wawi 0
Neu Amazon Lister 2.0 - Abgleich gelisteten Artikel Amazon-Lister - Fehler und Bugs 0
Neu Fehler bei Abgleich mit Shopify Shopify-Connector 5
Neu Abgleich mit JTL-Wawi funktioniert nicht Allgemeine Fragen zu JTL-POS 0
Amazon Abgleich funktioniert nicht JTL-Wawi 1.10 0
Neu 20.11.2025 Hosting JTL Shop Tod :+( Allgemeine Fragen zu JTL-Shop 10
Neu How to properly update order status through JTL Shop plugin? Allgemeine Fragen zu JTL-Shop 0
Neu Shop 5.61 - fehlende Sprachvariablen - suche *.slf Datei zum Import Betrieb / Pflege von JTL-Shop 3
Neu Shop extrem langsam ab ca. 17.oo Uhr JTL-Shop - Fehler und Bugs 4
Neu Kundenkonto mit mehreren Shop-eMail-Adressen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Was passiert beim Shop Update mit den Mailvorlagen? Installation / Updates von JTL-Shop 2
Neu Hohe CPU-last auf Shopserver - JTL Shop Query? Allgemeine Fragen zu JTL-Shop 9
Neu Von jetzt auf gleich Shop down "ohne" Fremdeinwirkung JTL-Shop - Fehler und Bugs 5
Am eigenen Lager Bestand = 0, bei FBA = 170, Probleme mit dem eigenen Shop und Otto.de JTL-Wawi 1.10 3
Neu Nach Update auf neueste Shop-Version – Datenbank plötzlich leer / Wie weiter? Backup, Rollback oder neu aufsetzen? JTL-Shop - Fehler und Bugs 9
Neu Dokumentation: Kundenverknüpfung JTL-Wawi (Version 1.10.15.0) zu JTL-Shop JTL-Shop 5.2 Onlineshop-Anbindung 0
Neu Preisfehler Anzeige JTL Shop 5 JTL-Shop - Fehler und Bugs 1
Neu 🚀 Pilotkunden gesucht: HS Dynamic Pricing Plugin für JTL-Shop Plugins für JTL-Shop 0
Neu Probleme bei WooCommerce JTL-Connector, keine Aktivierung möglich, Bestands-Shop lahmgelegt Onlineshop-Anbindung 0
Neu 🚀 JTL Shop Performance Check (Free): Kostenloses Plugin Plugins für JTL-Shop 0
Neu Downgrade von 3 JTL-Shop-Lizenzen auf 1 – Frage zur Umstellung der Domains User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL SHop 5.4 KAtegoriebild Allgemeine Fragen zu JTL-Shop 5
Nach Auftragsabschluss falsche Artikelbestände im Shop JTL-Wawi 1.9 0
Sonderpreise werden vom Shop aus Wawi nicht übernommen JTL-Wawi 1.10 1
Neu Shop versendet keine Bestellbestätigung JTL-Shop - Fehler und Bugs 0
Neu Anzeige von mehreren Kundengruppenpreisen im Shop Templates für JTL-Shop 0
Neu Täglich SQL Backup vom Shop Allgemeine Fragen zu JTL-Shop 2
WF - automatisches Aktivieren / Deaktivieren für Verkaufskanal Shop JTL-Wawi 1.9 6
Neu Welcher Hoster ist für JTL-Shop 5 empfehlenswert? User helfen Usern 12
Neu Aktuellen JTL Shop installieren *Fehler* Installation / Updates von JTL-Shop 0

Ähnliche Themen