Frage zum Cache-Verständnis

Hallöchen,

ich beschäftige mich gerade damit meinen Shopware 5.2-Shop zu optimieren. Zu diesem Zweck, habe ich mich u.a. mit den ganzen Cacheoptionen beschäftigt, wobei eine Frage auftritt: Ist das Shopware-HTTP Caching alles komplett dateibasiert? So las ich bspw. diese Seite durch (Shopware 5 performance guide for system administrators), wo beschrieben wird, dass man OPcache und APCu verwenden solle - was ich auch mache. Wenn ich das richtig sehe, legt Shopware den HTTP-Cache auf dem Filesystem ab, d.h. hier ist wohl eine SSD unabdingbar, damit das auch schnell gelesen werden kann, nicht wahr?

Der Hintergrund meiner Frage ist folgender, mein derzeit genutzter Server basiert auf einem Xeon E3-1231v3 (3,4-3,8GHz) mit 16GB RAM und SSD-Speicher im RAID1. Da unser Speicherplatz langsam aber sicher ausgeschöpft ist, stellt sich nun die Frage wie wir weiter verfahren. Einerseits könnten wir einfach die beiden SSDs durch größere austauschen. Aber das erzeugt ja jedesmal Aufwand und eine nötige Downtime und birgt natürlich immer gewisse Risiken.

Deshalb überlege ich schon ob es nicht sinnvoll sein könnte, gleich einen anderen Weg zu beschreiten. In diesem Fall böte sich ein Xeon E5-2620v4 (2,4-3,0GHz) mit 32GB RAM an. E5 deshalb weil das Servercase des E5 insgesamt vier Festplatten-Bays bietet - hier könnte man flexibler hantieren. Die Idee ist hierbei, als „normalen“ Webspace zwei schnelle Enterprise-HDDs (hoher Kapazität) einzusetzen (um viel Speicherplatz zu erträglichem Preis zu realisieren) und zusätzlich zwei SSDs für die Datenbank.

Nun frage ich mich - wenn Shopware viel auf Filesystemcache setzt - ist der Wechsel von SSD auf HDD dann nicht vielleicht recht negativ bemerkbar? Wenn das Cachesystem nahezu komplett in der Datenbank abgelegt würde, wäre es ja kein Ding, denn sie liefe ja weiterhin auf SSD-Space…

Oder bringe ich jetzt vielleicht etwas durcheinander? Vielleicht könnt ihr mich ein wenig aufklären… :wink:

Hm… kann mir niemand etwas dazu sagen?

Wie schaut es kostenseitig aus?

Bei HE gibt es bezahlbare Server mit SSD:

https://www.hosteurope.de/Server/Virtual-Server/
https://www.hosteurope.de/Server/Root-Server/

Hallo Mike,

die Kosten sind eine Sache… für mich wäre es ja erst einmal wichtig zu verstehen, wie sich das ganze im wahren Leben verhält. :wink: Wann ist SSD wirklich nötig? Wie sinnvoll oder realistisch sind meine o.g. Gedanken? Vermute ich richtig oder falsch? Mir fehlen da die Vergleichswerte oder Erfahrungswerte anderer.

Was heißt der Speicherplatz geht Dir aus. Wieviel Speicherplatz brauchst Du? SSD bringt sicherlich mehr Leistung. Die Frage ist ob die sie brauchst. Wie ist die aktuelle Auslastung des Systems? Hast Du weitere Flaschenhälse identifiziert?

Hallo Mike,

da wir ein größeres Archiv an MP3-Dateien aufbauen, brauchen wir viel Platz. :wink: Neben diesem, ich nenne es mal “MP3-Portal”, betreiben wir noch ein paar andere Websites, drei Shopware-Shops und eine kleine Cloud.

Die Systemauslastung liegt (außer wenn gerade Backup durchläuft) auf regelmäßig unter 0.5 (sagt Plesk 12.5). Der Arbeitsspeicher wird fast vollständig “belegt” (inkl. Reservierung) und ist zu ca. 55-75% tatsächlich ausgelastet. Wir verwenden aktuell rund 200GB + Backup auf einer 400SSD (RAID1). Wir müssen damit zwar noch nicht “morgen” aufstocken, aber das wird schon. :wink:

Aufgrund der CPU-Auslastung (<0.5) würde ich meinen, der aktuelle E3 reicht aus. Mir geht es eigentlich in erster Linie um einen schnellen Zugriff auf die Websites/Shops sowie eine hohe Verarbeitungsgeschwindigkeit innerhalb von Shopware (Artikelvarianten generieren usw. dauert schon ganz schön wenn da viele Tausend zusammenkommen). Außerdem haben wir ein WWS (Vario) angeschlossen, dort werden mehrmals täglich Updates gefahren. Und nun stellt sich die Frage ob bspw. ein Wechsel von SSD auf HDD einen größeren, d.h. spürbaren Unterschied, speziell beim Shopwarecache, und den WWS-Updates nach sich ziehen würde.

Artikelvarianten generieren, sind dann wohl Peaks. Oder passiert das ständig? Für diese Zeit geht die CPU-Last hoch. Kann man das auch nachts machen? Oder möchtest Du die Leistung dafür jederzeit haben?

Hast Du über CDN nachgedacht?

Evtl. kannst Du auch die HDDs dort mounten wo die Shopware die mp3s erwartet und shopware aber selber oder nur den Cache auf SSDs lassen.

Ansonsten zur Skalierung, Caches etc: Shopware cluster setup

Also prinzipiell behaupte ich, dass die Zugriffszeit zwischen HDD und SSD was das Auslesen des Caches betrifft bei der tatsächlichen TTFB kaum spürbar sein wird. Natürlich ist SSD schöner aber ob hier Kosten und Nutzen dafür stehen ist die Frage.

Außerdem solltest Du noch andere HTTP Caches wie Varnishcache prüfen. Dort werden Daten möglicherweise sogar im Speicher gehalten.

@Synonymous schrieb:

Also prinzipiell behaupte ich, dass die Zugriffszeit zwischen HDD und SSD was das Auslesen des Caches betrifft bei der tatsächlichen TTFB kaum spürbar sein wird. Natürlich ist SSD schöner aber ob hier Kosten und Nutzen dafür stehen ist die Frage.

Das ist ja eben die Frage… :wink:
Wenn du das jetzt so behauptest… sprichst du aus Erfahrung oder ist das eine Vermutung?

 

Außerdem solltest Du noch andere HTTP Caches wie Varnishcache prüfen. Dort werden Daten möglicherweise sogar im Speicher gehalten.

Davon hörte ich schon. Aber ist das nicht kostenaufwändig so ein System einzurichten? Wenn ich es richtig verstehe, wird der Varnishcache auf dem Server separat eingerichtet und vor die eigentliche Website (also Shopware) vorgeschaltet. Der Varnish entscheidet dann welche Daten direkt aus „seinem“ Cache kommen und welcher request direkt an SW weitergereicht wird, richtig?

Mit welchen Kosten muss man für eine Einrichtung so rechnen?

Ja, ist auch ein HTTP Cache… Könntest Du auch auf eine eigene Maschine legen.
Und die Performancesteigerung führe ich auf die unterschiedlichen Zugriffszeiten zurück - dadurch wirst Du vermutlich maximal 10ms gewinnen - ist also bei Webseiten vernachlässigbar. Und bei 150MB/sek. die jede HDD lesen kann, sollte auch die Lesegeschwindigkeit kein Thema sein.