Problem:
Suchergebnisliste und Filterergebnisliste laden dauert zu lange. (48 Artikel/Seite)
Uncached Artikeldetailseite laden dauert zu lange. (cached geht schnell)
Was lange dauert, ist laut Netzwerkanalyse das HTML, für 20kb etwa 5 Sek bei Artikeldetail und 10 Sek bei Suchergebnisseite.
Scripte und Images etc. laden nach dem HTML sehr schnell innerhalb von Millisekunden.
Seiten aus dem Cache sind schnell, aber wir können nicht alles cachen weil der Shop recht groß ist.
Frage:
Welche Optionen wären sinnvoll für eine Performancesteigerung?
Anpassungen Konfiguration Webserver (welche …?)
Anpassungen Konfiguration Shopware (welche …?)
Einsatz von Elastic-Search (gleicher Server / separater Server?)
Upgrade Webserver (Prozessorkerne?)
Shop:
Shopware: 5.5.10
280.000 Artikel, davon 270.000 aktiv (keinen Nutzung von Varianten)
Kategorien: ca. 300
Kundengruppen: ca. 2000
Kunden: ca. 2000
Daten:
Größe: ca. 1GB (MariaDB)
Search-Index: ca. 2 Mio Datensätze
Artikelpreise: ca. 1 Mio Datensätze
Search-Keywords: ca 700.000 Datensätze
Caching:
SEO-Indexer: 1x pro Stunde per Cronjob
Search-Indexer: 1x am Tag per Cronjob um 0.30 Uhr
Cache-Clear: 1x am Tag per Cronjob um 1.00 Uhr
Cache-Warmup: 1x am Tag per Cronjob um 1.30 Uhr, dauert ca. 2,5h (Artikeldetailseiten sind ausgeschlossen, sonst würde der komplette Warmup mehrere Tage dauern) (httpdocs/bin/console ‚sw:warm:http:cache‘ ‚-k‘ ‚-o‘ ‚-g‘ ‚-m‘ ‚-t‘ ‚-x‘ ‚-b‘ ‚2‘)
Cache-Lebensdauer:
SEO-Index: 1Tag (86400 sek)
Search-Index: 1Tag
http-Cache: aktiv
Auto-Invalidierung: aktiv
Alle cached Controller sind auf 1 Tag eingestellt
Nicht cached Controller sind widgets/lastarticles[detail], widgets/compare[compare], frontend/listing[price], frontend/index[price], widgets/listing[price], widgets/checkout[checkout,slt,price], frontend/detail[price]
Shopware-Cronjobs:
Clearing (täglich)
EmailNotification (täglich)
CleanupSignatures (täglich)
RefreshCustomerStreams (täglich)
OptInCleanUp (täglich)
RegistrationCleanup (täglich)
AutoImport (täglich)
SitemapGeneration (täglich)
Pluginspezifische Crons (stündlich/ täglich)
Monitoring:
CPU-Auslastung gesamt geht beim Warmup nachts auf ca. 25-50%.
Bei SEO-index geht es stündlich eher punktuell auf 25%. Sonst immer unter 10%.
Auslastung durch User im Frontend: vernachlässigbar, da aktuell noch nur 1-10 Kunden am Tag im Shop.
Invalidierung: es werden nur wenige Artikel am Tag aktualisiert (0 bis 100).
Server:
Managed vServer
4 Kerne
16G Ram
100G SSD (NVMe)
Apache (ngix verfügbar, macht aber testweise keinen Unterschied)
APCu aktiv
ZendOpcache aktiv
PHP 7.2.34
PHP Memory-Limit: 8G
Server API: FPM/FastCGI (Apache) (FastCGi und FPM ngix wäre möglich, macht aber testweise keinen Unterschied in der Performance)
Wäre super wenn ihr hier ein paar Tipps in die richtige Richtung für mich hättet!