Hallo,
das Thema ist schon mehrfach diskutiert worden, aber nirgendwo hat die Diskussion bisher mit einer wirklichen Lösung geendet: Die nicht akzeptable Ladegeschwindigkeit von Variantenartikeln
Im konkreten Fall geht es um einen B2B-Shop eines Texttilherstellers, der Kleidungstücke in verschiedenen Farben (1 bis 8 Varianten) und jeweils acht Größen verkauft, also im Textil- und Schubereich nichts außergewöhnliches. Es gibt also zwei Varianten-Gruppen - Größen und Farben.
Der Shop läuft auf einem Server mit aktuelllem SUSE-Linux mit PHP 5.6 und MariaDB, aktiviertem Opcache und 12 GB Arbeitsspeicher zusammen mit drei weiteren Anwendungen, darunter ein anderer Shopware-Shop ohne Variantenartikel.
Bei gecachten Artikeln ohne Varianten liegen die Ladezeiten bei 200 bis 900ms, wird eine Detailansicht des Variantenartikels aufgerufen steigen die Ladezeiten auf 4 bis 5 Sekunden. Die gleiche Zeit wird für einen Variantenwechsel benötigt. Ein Caching findet offenbar nicht statt. Da einer erneuter Aufruf einer Variantenkombination keinen Zeitvorteil bringt. Das ist für den Kunden nicht akzeptabel, da seine Einzelhändler von einem Kleidungsstück in der Regel alle Größen-Varianten kaufen. Auch die Ablage in den Warenkorb ist mit ca 2 bis 3 Sekunden nicht sehr schnell.
Die Auslastung von CPU und Arbeitsspeicher sind bei Shopaufrufen gering (meist unter 30%). Allerdings auffällig ist, dass bei Aufrufen von Artikeldetails aus dem Shop die Zahl der Datenbankabfragen schlagartig um ca 300 !!! steigt, und das bei rechnerich meist 30 bis 40 Variantenkombinationen. Was passiert da im Hintergrund, wo passiert das und geht das nicht einfacher? Hat vielleicht jemand ein Plugin für einen ressourcenschonenden Variantenwechsel. Texte, Preise und Bilder sind aktuell bei allen Varianten identisch.
Auffällig ist noch, dass beim Blick in die Datenbank-Prozessliste ein Prozess des Shops mit einer Sleep-Zeit von 4 Sekunden auftaucht. Leider ist diesem Prozess kein SQL-Befehl zugeordnet.
Hat jemand eine Idee, wie man die Abarbeitung der Datanbankaufrufe ggf beschleundgen kann. Ich habe Zugriff auf my.cnf.
Da es sich um einen geschlossenen B2B-Bereich handelt, kann ich die Url hier nicht veröffentlichen. Ich kann aber Menschen, die sich mit Shopware besser auskennen, einen Zugang einrichten.
Viele Grüße
Michael