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.847
209
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.847
209
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.847
209
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.225
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.847
209
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.847
209
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.847
209
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.847
209
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.847
209
: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 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 41
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 Shopware 6.6.10.2 Abgleich zu JTL | Bilder Übertragung Fehler: Path cannot be empty Shopware-Connector 0
Neu JTL Connector Shopify Abgleich Problem Shopify-Connector 1
Neu Amazon Abgleich funktioniert nicht User helfen Usern - Fragen zu JTL-Wawi 0
Neu Upload-Dateien: Fehler beim Abgleich Onlineshop-Anbindung 0
Url vom Shop korrekt setzten (index.html) Einrichtung JTL-Shop5 0
Beantwortet Übersicht Artikel in welchem Shop aktiv? User helfen Usern - Fragen zu JTL-Wawi 3
Neu In Shop Artikel vorbestellen - zusätzliche Versandkosten? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Shop-Update Einrichtung von JTL-Shop4 3
Neu JTL-Shop 5.6 - Aktuell 5.6.0 Releaseforum 0
Neu Plugin-Idee: Überkäufe Lieferantenbestände & Lieferzeiten (API/CSV/XML) in Shop & Wawi Plugins für JTL-Shop 2
Neu Download-Artikel mit dem Download-Modul anbieten JTL SHOP Plugins für JTL-Shop 5
Brandtexte pro Shop verschieden anzeigen lassen JTL-Wawi 1.10 0
Neu Die folgenden Dateien sind nicht identisch mit den Dateien der aktuellen Version von JTL-Shop. Allgemeine Fragen zu JTL-Shop 0
Kundenstammdaten: Wie erkenne ich in der Wawi, ob ein Shop-Kunde ein Kundenkonto angelegt hat? JTL-Wawi 1.9 2
Neu Auswahl im JTL Shop - keine Rechnung beilegen - wie in Wawi einlesen ? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Was bedeutet das genau: Anzahl nötiger Bestellungen (Zahlungsart im Shop Backend) Allgemeine Fragen zu JTL-Shop 1
Neu Schlechte Shop Ladezeit - Google Pagespeed Allgemeine Fragen zu JTL-Shop 11
Neu Kunden mit registrierten Konto im Shop exportieren User helfen Usern - Fragen zu JTL-Wawi 2
Neu Shop wo Kunden selbst einen Artikel designen können? Smalltalk 3
Neu Ausstellungsstücke korrekt abbilden – nicht im Shop verkaufen, aber in Lagerbewertung sichtbar User helfen Usern - Fragen zu JTL-Wawi 5
Neu PromoBar-Portlet für JTL-Shop 5 – Aktionsleiste, Gutschein & Countdown Plugins für JTL-Shop 0
Neu Automatische Datenübernahme aus Wawi-HTML in den Shop verhindern Hallo zusammen, Allgemeine Fragen zu JTL-Shop 3
Neu Paypal Zahlung erfolgreich, Auftrag mit Status Neu im Shop und fehlt in WAWI JTL-Shop - Fehler und Bugs 4
Verbindungsfehler zwischen Wawi 1.10 Shop 5.5.3 JTL-Wawi 1.10 10
Shop wird mehrfach angezeigt JTL-Wawi 1.10 8
Neu JTL-Shop-Template Technik – optimiert für Performance & Conversion Templates für JTL-Shop 3
Neu GA4-Tracking für JTL-Shop 5 – sauberes E-Commerce & Kategoriepfade Plugins für JTL-Shop 0
Neu Steuereinstellungen - Shop vs. Wawi? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Artikelseiten 500 HTTP Fehler PayPal Plugin 2.1.0 JTL Shop 5.4.0 Plugins für JTL-Shop 4

Ähnliche Themen