Moin!
Hier erstmal die Kurzfassung dieses Posts: Wir (versuchen) unseren Shop & Schnittstelle mit hunderttausenden Artikeln und Kategorien von Shopware 5 auf 6 (alles CE & self-hosted) zu migrieren und stoßen auf massive Performanceprobleme. Wer betreibt noch große Shops und hat hiermit Erfahrung?
Hier die lange Version mit Vorgeschichte und mehr technischen Details:
Wir nutzen schon lange Shopware für unsere E-Commerce Bedürfnisse, seit Version 4 sind wir dabei. Wir „leiden“ dabei schon immer an der Besonderheit, dass wir ein großes Sortiment an Motorradteilen anbieten, was zu vielen Artikel-zu-Kategorie Zuordnungen führt. Aktuell reden wir von ~100.000 Artikeln und ~60.000 Kategorien, an sich keine große Datenmenge. Die denormalisierten Tabellen wie product_category_tree haben allerdings aktuell 12.000.000 Einträge. Mit Sicherheit nicht wenig, aber heutzutage eigentlich eine Datenmenge, die keine unüberwindbare Herausforderung darstellen sollte.
Unser aktuelles System, welches noch auf Shopware 5 basiert, kommt soweit gut damit klar. Die API antwortet bei vollen Artikelupdates flott und auch der Shop ist noch in einem erträglichen Rahmen benutzbar. Um dort anzukommen war es ein langer Weg von Trial & Error, aber wir sind irgendwann angekommen. Wir haben zig Hoster durchprobiert, hatten Instancen bei AWS, etc pp… am Ende sind wir bei TimmeHosting und dem t91 gelandet (Managed Server mit 32 Kernen, 128GB RAM, NVMe SSD) und sind sehr zufrieden, v.a. der Support hat wirklich enormes Fachwissen. Unser System macht Gebrauch von Elasticsearch und Redis, aber unser Server langweilt sich aktuell eigentlich, selten ist die Maschine mehr als zu einem Fünftel ausgelastet. Pro Monat haben wir zwischen 700.000 und 1.200.000 Seitenaufrufe.
Kommen wir zu unserem aktuellen Problem: Wir bekommen Shopware 6 in der gleichen Umgebung nicht zufriedenstellend performant. Es kommt gut und gerne mal vor, dass wir mehrere zehntausend Artikel am Tag updaten müssen, vor allem hier hat das System große Probleme. Wir haben die maximale Anzahl an zugeordneten Kategorien schon intern auf 5000 Stück begrenzt. Das Updaten aller Attribute von so einem Artikel dauert teils mehrere (!) Minuten, wenn es nicht eh zu anderweitigen Abbrüchen kommt. Das Aufrufen im Adminbereich entsprechender Artikel ist ähnlich fürchterlich, gerne friert der Tab komplett ein.
Alleine durch diese Tatsache können wir unsere Artikel nicht sequentiell updaten, wir haben unsere Schnittstelle entsprechend umgeschrieben, dass es via Multiprocessing arbeitet - nur so haben wir zumindest theoretisch die Chance, der Datenmenge Herr zu werden. In der Praxis funktioniert allerdings auch dieser Ansatz nicht, damit bekommen wir den Server tatsächlich an seine Grenzen und während der Updates ist er unbenutzbar langsam. Das Neuaufbauen vom Elasticsearch-Index fürs Frontend dauert inzwischen auch schon anderthalb Stunden.
Betreibt irgendwer einen self-hosted Shopware 6 Store mit ähnlichen Spezifikationen und kann Tipps zu Frontend- wie Schnittstellenperformance liefern? Wir haben auch kein Problem damit, für Fachwissen zu zahlen, aber auf die Bezahlpläne von Shopware selbst wollen wir uns nicht einlassen. Ist Shopware 6 überhaupt noch das richtige System für unseren Anwendungsfall? Wir würden uns über einen sachlichen Erfahrungsaustausch freuen!