Kundendaten vertauscht - fehlerhafter Cache?

Hallo zusammen und ein frohes neues Jahr,

ich habe seit längerer Zeit mehrere Probleme mit dem http-Cache und es kam vor, dass Kunden in anderen Kundenkontos eingeloggt waren und deren Warenkorb einsehen konnten. Ich vermute, dass diese beide Probleme auf irgendeiner Weise zusammenhängen könnten. Ich verwende Shopware 5.6.9.

Wenn ich im Backend den Cache über “Einstellungen>Shop Cache leeren” leere, dauert das ungewöhnlich lange bis die Meldung “Shopcache wirde geleert” rechts oben erscheint. Wenn ich den http-Cache unter “Einstellungen>Performance> Einstellungen>HTTP-Cache>Cache aufwärmen” aufwärmen möchte, erscheint eine Fehlermeldung, dass beim Aufwärmen ein Fehler aufgetreten ist und ich im System-Log schauen soll. Die Log-Datei core_production des heutiges Tages ist allerdings im System log und auf dem Server nicht angelegt. Trotzdem kann das Aufwärmen laut Backendmeldung erfolgreich abgeschlossen werden.

Bei einigen Kunden ist es passiert, dass sie in anderen Kundenkontos eingeloggt waren und deren Warenkorb einsehen konnten. Wir dachten zuerst, dass das Problem serverseitig zustande gekommen ist und haben uns sofort an unseren Provider gewandt. Dieser konnte aber kein Problem mit dem Server feststellen und hat dann manuell den Cache geleert. Seitdem ist das Problem auch nicht noch mal aufgetaucht. Kann sich hier jemand erklären wie so etwas passieren kann?

Da unser Shop saisonweise geöffnet ist, haben wir am Start der jewiligen Saison in sehr kurzer Zeit ein relativ hohes Besucheraufkommen. Zum Start holen wir den Shop aus dem Wartungsmodus und leeren anschließend den Cache im Backend, damit der Shop für die Besucher zugänglich wird. Leider ist der Shop für eine Zeit von etwa einer Stunde dann immer sehr langsam und es dauert gute 30 Sekunden bis eine Seite im Frontend oder Backend geladen ist. Das Backend ist so langsam, dass es nicht wirklich möglich ist, den Cache aufzuwärmen. Hat da jemand eine Idee, wie man das anders lösen könnte?

Hoster? Es gab/gibt ein Problem bei Domainfactory dass bei http/2 in Verbindung mit FastCGI das in die Richung geht: HTTP/2 aktivieren auf ManagedServer - DomainFactory Supportforum

Also ich würde definitiv am Hoster ansetzen, dort mal nachfragen. Ggf. auch den Tarif oder komplett zu einem Shopware Hoster wechseln (sofern du bei einem Hoster bist der nicht so viel Ahnung von Shopware hat).

Hallo raymond,

vielen Dank für deine Antwort. Wir nutzen leider noch nicht mal http/2 und daher auch kein FastCGI. Der Hoster ist dmsolution und sollte sich mich Shopwaresystemen ja gut auskennen. Betreut wurden wir zudem von jemanden der anderen Personen Shopware-Shops kondiguriert.

Im Backend sind zumindest Daten für den Cache hinterlegt.

Ich habe nun mal mit der Google Chrome Entwickler-Tool im Bowser unter Netzwerk die jeweiligen Zeiten angeschaut. Daber habe ich gesehen, dass die meisten Dateien wie Bilder schon gecached wurde (wie man in der Spalte Time ganz unten sieht). Aber bei nahezu allen Seiten die analysiert habe dauerte der Prozess “refreshStatistiv?requestPage” sehr lange. Ich nehme an, dass das die Rückmeldung für die Statistik im Backend ist. Jemand eine Idee warum die kleinen Daten so langsam übertragen werden?

 

Und was ist wenn du auf den Entwicklungsmodus stellst (testweise) um den Cache zu deaktivieren: https://docs.shopware.com/de/shopware-5-de/einstellungen/cache-performance-modul

Statistik kann man deaktivieren, ob das Sinn macht langfristig musst du entscheiden: https://forum.shopware.com/discussion/39682/refresh-statistic-refreshcaptcha-deaktivieren

Was für einen Tarif beim Hoster?

Der Unterschied ist schon erheblich.

 Links die Zeiten mit ausgeschaltetem http-Cache recht mit aktiven Cache. Nur das Cache-Aufwärmen scheint noch nicht so richtig zu funktionieren. Es kommt wieder eine Fehlermeldung, aber es gibt keinen Eintrag im System-Log core_production.

Was ist der Unterschied zwischen disk cache und memory cachen? Ist das eine vielleicht der http-cache vom Server und das andere der Browsercache?

Sollte der http-Cache im Backend direkt nach dem Aufwärmen nicht eigentlich voller sein als 278kb? Das kommt mir so vor als ob die “organisch” gecached wurden.

Verwendet wird der SSD Webhosting V2.0 Basic https://www.dmsolutions.de/ssd-webhosting.html 

Ist der Server für 300 Besucher die zeitgleich im Shop bestellen wollen zu schwach? 

Grüße,
Florian

Bei uns sind deutlich weniger gleichzeitig angemeldet und wir haben einen deutlich größeren Server. Als könnte sein. Kann das nicht mal der Hoster monitoren, ob der Tarif mit den Zugriffen einfach zu klein ist (die Datenbank auch mal beobachten)?

Ist das so ein guter Hoster? Ich habe mir mal die ManagedServer angeschaut: https://www.dmsolutions.de/server.html : uralte Server. Wenn bei deinem Tarif alte Komponenten und Software im Einsatz sind: dann viel Spaß den Fehler zu finden. 12 Monate Vertragslaufzeit ist auch etwas lang.

Ja das stimmt, der Server ist echt nicht der Beste. Danke für deine Einschätzung.

Ich halte einmal fest:

  • Das Cache Aufwärmen im Backend funktioniert nicht mehr. Im System-Log wird keine Fehlermeldung geschrieben. Ich komme daher nicht auf die Ursache des Problems. Workaround: Ich benutze die Schnellfunktion „Shopchache leeren“ nicht mehr, sondern nur leere die Caches gezielt. Für den Aufbau des http-Caches nutze ich einen SEO Crawler, der alle Seiten aufruft. Habe kein besseres Tool gefunden.

  • Der Server ist wirklich nicht der Beste. Im ersten Schritt versuche ich beim Hoster den Server auf Http2.0 umstellen zu lassen. APCu ist auch nicht aktiviert. Ich werde zudem die Auslastung vom Hoster monitoren lassen. Wenn ich dann nochmal Probleme haben sollte, wechsel ich den Hoster.

  • Der Dienst RefreshStatistic nimmt bei unserem Shop mit 500-800ms doch wirklich sehr viel Zeit in Anspruch. Ich überlege die Shopware Statistik bei den Hochphasen im Shop und hohem Besucheraufkommen vorübergehend zu deaktivieren. Google Analatytics sollte ja zudem genauer und detailreicher alles tracken.

  • Des Weiteren habe ich Klarna als Bezahldienst rausgeschmissen, da hierbei die Ladezeit bei jeder Seite um 300ms erhöht wurde. Wenn Shopware Statistik und Klarna ausgeschaltet ereiche eine sagenghafte Gesamtladezeit von durchschnittlich 120ms. Das wäre natürlich ein Traum.

Hallo,

der Tarif SSD Webhosting V2.0 Basic ist Shared Hosting, d.h. Du teilst Dir den Server mit zig anderen Kunden. 300 gleichzeitige Besucher ist eine ziemliche Ansage, da ist Shared Hosting vollkommen unterdimensioniert. APCu sollte auf jeden Fall aktiviert werden und http/2 ist eigentlich auch schon lange Standard.

Falls Du einen SSH Zugang hast, kannst Du den Cache auch gezielt mit den Shopware CLI Tools aufwärmen:
Shopware 5 - Tutorials & FAQs - Nutzung der CLI Befehle in Shopware

Viele Grüße

Und wie entschieden? Gibt’s neue Erkenntnisse?

Trotz Shared Hosting: vielleicht kannst du testweise mal auf SSD WEBHOSTING PREMIUM V2.0 wechseln ohne dass alles bei dir neu konfiguriert werden muss. Das am besten mit dem Hoster besprechen, nicht dass deine Vertragslaufzeit wieder von vorn beginnt. Vielleicht reicht das schon (ist vermutlich immer noch nicht optimal, aber bei so vielen gleichzeitigen Besteller sollten 30 Euro/Monat mehr fürs Hosting drin sein).

Frage (was ich gerade sehe): wie kannst du Basic v2.0 haben wenn in deinem Screenshot zu sehen ist, dass du noch über 2 TB frei hast? Basic v2.0 hat nur 50 GB Speicher. Hast du noch externen und langsamen Speicher angebunden?

Ich habe noch keine neuen Erkenntnisse, aber ich geben Bescheid wie meine weiteren Schritte aussehen werden :slight_smile: Ich lasse mir ein paar Optionen zur Performance Verbesserung geben und dann werde ich entscheiden.

PS. Das mit den über 2 TB habe ich mich auch schon gefragt. vielleicht kann man daran erkennen wieviele Kunden wirklich auf so einem Shared Server sind. Im Plesk stehen mir nur die 50 GB zur Verfügung.

2 TB/50 GB: sind einiges an Kunden auf dem Server: kurz 40. Ja entweder den maximalen Shared Tarif (frag die mal wieviele Kunden darauf sind bspw. macht es hier All-Inkl sehr transparent) oder bei denen auf einen ManagedServer wechseln oder anderen Hoster und dort ManagedServer statt SharedHosting nutzen.