HTTP-Cache nach login

Hallo zusammen,

wir haben einen relativ umfangreichen Shop mit vielen Artikeln/Kategorien am laufen und sind deshalb auf stark auf den HTTP-Cache angewiesen, damit das Ganze flott läuft.

Nun ist es aus dem Shopware-Standard wohl so gedacht, dass sobald sich ein User anmeldet, Kategorien und Artikel nicht mehr aus dem Cache gezogen werden (User-Gruppen-Spezifische-Preise usw.). Die Logik ist soweit ja nachvollziehbar, aber wir kriegen es nicht hin, dass auch diese Inhalte im Cache landen. Wir sind schon so weit, dass wir lieber Kundenspezifischepreise über Bord werfen (sind eh nicht viele) als alle Kunden mit den unterirdischen Ladezeiten eines nicht gecached Shops zu nerven.

Leider konnte uns bis jetzt niemand helfen den wir gefragt haben. Hat jemand eine einfach Idee, wie wir das hinbekommen?

 

BTW Kundenspezifischepreise gibt es bei uns nur wegen der Unterscheidung Brutto- oder Nettopreise und daher pro Subshop nur 2 Kundengruppen.

Aber Shopware legt pro Kundengruppe einen eigenen Cache an - also das kommt nicht alles Live aus der Datenbank. Du kannst allerdings nicht den Cache für eine andere Kundengruppe “aufwärmen”.

Der Artikel erklärt das ganz gut. Da kann man auch debuggen, ob eine Seite aus dem Cache kommt (bspw. beim zweiten Aufruf).
 

Es speichert die Anfragen zwar laut Debugger, aber hat nach einer weile trotzdem wieder „misses“. Die Cache Zeiten der Controller sind auf mehrere Tage gesetzt, ohne Login gibt es da auch keine Probleme. Der Cache für insgesamt 3 Subshops liegt bei etwa 21 GB, ist das vielleicht ein Problem (ca. 200.000 Produkte x 3 für Subshops)?

 

Die Cache Größe finde ich normal.

Wird denn in der Zeit etwas am Artikel geändert? Die Cache Invalidierung würde ja auch ein miss verursachen.

Richtig, haben wir auch beides schon ausgeschlossen. Invalidierung ist vorerst abgeschaltet.

Wir sind etwas Ratlos…

Sind APCu und opcache ebenfalls in der Größe ausreichend ? Kannst Du von Performance -Cache ein Bild posten ?

Link zum Shop ?

APCu und opcache haben wir uns noch nicht angeschaut…

Backend sieht so aus : http://prntscr.com/kx2m7y darunter kommen noch ein paar Widget Controller.

Der „post“-Login Cache läuft also unter der selben Konfiguration wie die „pre“-Login Cache, aber wird einfach nicht durch das Warmup angesprochen?

Gibt es keine Möglichkeit den Cache für eingeloggte Benutzer, zumindest für die Kategorien aufzuwärmen? 

Uns fällt auf, dass manchmal eine abweichende „x-content-digest:“ generiert wird, ohne nachvollziehbaren Grund. Wir haben keinerlei Nocachetags oder Cookies erstellt, die innerhalb eines Subshops für separate Ansprachen gedacht sind.

 

 

 

 

Dann schau mal nach APCu und opcache…t:

http://www.webpagetest.org/performance_optimization.php?test=180921_DE_39bd27b9ccfc2dd2ef5dfcd191f77e4b&run=1#cache_static_content

 

Eigentlich meinte ich ein Bild von caches/Performance - Cache

Da ist leider nichts zu sehen, das Modul hat einen Time-out bevor man was sehen kann. Wenn du da auch einen Tipp hast…

Aber eine Fragen zum opcache. In der Developerbeschreibung von Shopware steht:

"opcache.max_accelerated_files: The maximum number of PHP files OPcache will handle. A typical clean Shopware 5 installation has around 7000 PHP files, but that does not include generated cache files, 3rd party or custom plugin files or other PHP files your web server might host simultaneously. Make sure that the value you put here is high enough to include all your PHP files (unless, for some reason, you have many files and not enough memory). "

Momentan ist der Wert auf 2.000 gestellt, also definitiv falsch. Aber die „Generated cache files“ sind doch mal locker mehrere hunderttausende? Das scheint mir als Wert doch etwas hoch im vgl. zum Defaultwert…?

 

 

 

Der opcache hat mit seinem Problem nix zu tun. Der bringt ja nur allgemein etwas, weil dann häufig ausgeführte PHP Dateien schneller abgerufen werden. Ist also eher eine Performance Steigerung allgemein. Kein Bezug zum HTTP-Cache.

Der Timeout beim Performance–Modul liegt am großen Cache. Der braucht länger als die max_execution_time zum auslesen der Größe. Entweder den Wert hochsetzen oder ignorieren.

Wie gesagt werden die Seiten für die zweite Kundengruppe nicht mit aufgewärmt. Die sind initial erstmal langsam und dann beim zweiten Request schnell. Die Caching Zeiten sind die gleichen wie im Performance-Modul definiert. Wenn die abweichen, wird da wohl irgendwas mit reinspielen.

@Achlol schrieb:

Hallo zusammen,

wir haben einen relativ umfangreichen Shop mit vielen Artikeln/Kategorien am laufen und sind deshalb auf stark auf den HTTP-Cache angewiesen, damit das Ganze flott läuft.

Nun ist es aus dem Shopware-Standard wohl so gedacht, dass sobald sich ein User anmeldet, Kategorien und Artikel nicht mehr aus dem Cache gezogen werden (User-Gruppen-Spezifische-Preise usw.). Die Logik ist soweit ja nachvollziehbar, aber wir kriegen es nicht hin, dass auch diese Inhalte im Cache landen. Wir sind schon so weit, dass wir lieber Kundenspezifischepreise über Bord werfen (sind eh nicht viele) als alle Kunden mit den unterirdischen Ladezeiten eines nicht gecached Shops zu nerven.

Leider konnte uns bis jetzt niemand helfen den wir gefragt haben. Hat jemand eine einfach Idee, wie wir das hinbekommen?

 

BTW Kundenspezifischepreise gibt es bei uns nur wegen der Unterscheidung Brutto- oder Nettopreise und daher pro Subshop nur 2 Kundengruppen.

Hallo Achlol!

Wir haben das gleiche Problem - viele Artikel - ohne cache zu langsam - kein cache warmup nach login…
Hast Du das Problem inzwischen lösen können?

Vielen Dank!

Hallo zusammen,

darf ich in diesem Thread nochmal fragen, ob es eine Lösung für die Problematik des fehlenden Cache-Warm-Ups nach Login gab?

Wir stehen vor dem selben Problem und würden uns über einen Hinweis sehr freuen!

Vielen Dank an alle!

Hallo zusammen,

gibt es hierfür mittlerweile schon eine neue Erkenntnis?

Bei uns besteht dieses Problem leider auch immer noch.

Gibt es hierfür ein Plugin?

MfG Hagoo