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.851
210
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.851
210
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.851
210
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
204
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.851
210
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.851
210
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.851
210
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.851
210
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.851
210
: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
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 Seit gestern geht Abgleich nicht mehr... WooCommerce-Connector 2
Neu alte Aufträge ausliefern ohne Label drucken und Abgleich mit eBay User helfen Usern - Fragen zu JTL-Wawi 2
Neu Bilder werden beim Webshop-abgleich nicht übertragen User helfen Usern - Fragen zu JTL-Wawi 11
Neu Shopify-Connector: Fehler "delivery_note table doesn't exist" beim Lieferschein-Abgleich Shopify-Connector 4
Abgleich wird abgebrochen durch diesen Fehler Shopify-Connector 7
Neu Worker macht Fehler nach Update. kein Abgleich möglich Betrieb / Pflege von JTL-Shop 1
Neu Fehler bei Abgleich WooCommerce-Connector 1
Neu Fehlerhafter Abgleich nach Update auf Shop Version 5.5 Installation / Updates von JTL-Shop 4
Neu Bestellobergrenze (999€) für Schweizer Kunden im Shop hinterlegen Betrieb / Pflege von JTL-Shop 0
Neu Keine plugins im header und footer mehr auf Startseite shop 5.6.0 angezeigt Installation / Updates von JTL-Shop 2
Neu Shop 5.6. pagespeed FCP LCP Optimierung - java script & CSS veraltet bzw. nicht verwendet - Cache Dauer Betrieb / Pflege von JTL-Shop 0
Neu Shop über verschieden Domains in gewünschter Sprache aufrufen ? Betrieb / Pflege von JTL-Shop 5
Neu JTL Shop - OSS - Länderauswahl notwendig ?! JTL-Shop - Ideen, Lob und Kritik 1
Neu Probleme nach Shop Update auf V5.6 Onlineshop-Anbindung 3
Neu JTL Shop Brevo Plugin meldet keine Abmeldungen an JTL Shop + Kontakte landen nicht in der Willkommenssequenz Plugins für JTL-Shop 0
Neu Suche Freelancer für Aufsetzen JTL B2B Shop Dienstleistung, Jobs und Ähnliches 3
Neu JTL-Shop Admin Bereich und Shop nur noch 504 Gateway Time-out ( Hosting über JTL ) User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL-Shop 5.5.2 – Fehlerhafter Canonical-Tag im Blog-Template verhindert Indexierung durch Google JTL-Shop - Fehler und Bugs 2
Neu JTL Shop Update von 5.3.3 auf 5.6 mit der Community Free Edition - WaWi funktion weiter gegeben? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Googel Weitereitung im Shop URL User helfen Usern 1
Neu JTL Shop - Rabatt pro Kunde möglich ? Allgemeine Fragen zu JTL-Shop 8
Neu JTL-Shop TECHNIK (SalePix) – Problem mit Render Blocking Requests User helfen Usern - Fragen zu JTL-Wawi 2
Neu Kategorierabatte pro Kunde im JTL-Shop Einrichtung von JTL-Shop4 2
Neu Tailwind als Basis für JTL Shop 6 ? Templates für JTL-Shop 2
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Gewinnbasierte Provision & gezielte Kunden-Zuordnung im JTL Shop / Wawi User helfen Usern 0
Neu Wie kommen die Versandarten aus JTL-Wawi in den JTL-Shop? Betrieb / Pflege von JTL-Shop 7
Neu JTL Shop - Umwandlung Domain von Test auf Live Allgemeine Fragen zu JTL-Shop 1
Neu Neues Plugin: JTL Closed Shop – Zugangsbeschränkung, Pre-Sale & Wartungsmodus für deinen JTL-Shop Plugins für JTL-Shop 1
Lieferzeit / Lieferdatum wird im Shop bei Variantenartikeln nicht angezeigt Allgemeine Fragen zu JTL-Shop 0

Ähnliche Themen