Performance mit HttpCache verbessern

Hi zusammen, ich habe mal ben ins Cache Verzeichnis geschaut und dort gibts nur ein en und ein md Verzeichnis mit jeder Menge Unterverzeichnisse. Müsste es nicht auch ein de Verzeichnis geben oder liege ich da falsch? Ich habe nämlich immer noch Performanceprobleme und komme nicht drauf, woran es denn liegen könnte. Vielen Dank und viele Grüße, Chris

Hi, wie groß ist den dein HttpCache-Verzeichnis? Das mit den 2 Ordnern ist schon richtig. Ein Ordner für das HTML und eins für die “Headers”. Man sollte darauf achten, dass das Verzeichnis nicht im Netzwerk liegt und die Festplatte schnell genug ist. Bei größeren Shops ersetzen wir übrigens den Datei-Cache durch eine Varnish-Lösung. Viele Grüße Heiner

Servus Heiner, vielen Dank für Deine Antwort. Das Verzeichnis ist ca. 10 MB groß. Hmm, dann muss vielleicht doch noch ein Varnish mit dazu… Wie findest Du die Performance des Shops? Zumindest gefühlt? Vielen Dank und viele Grüße, Chris

Geht so. 800ms für eine gecachte Startseite ist nicht sehr gut. Es sollte eher die Hälfte der Zeit dauern. Hast du APCu und OpCache aktiv? Gruß Heiner

Hi nochmal, ja, es ist alles soweit aktiv, was mich auch wirklich sehr, sehr wundert, da ich mir mehr davon versprochen hätte. Vielen Dank und viele Grüße, Chris

Hast du vielleicht irgendwelche langsame Plugins mit ESI-Tags aktiv? Diese Seite ohne ESI-Tags/mit HttpCache ist nämlich sehr schnell: https://www.meinestruempfe.de/widgets/compare Ich würde einmal testweise alle in Fragen kommenden Plugins deaktivieren, bis die Startseite wieder schnell ist. Gruß Heiner

Servus nochmal, was sind denn ESI-Tags? Woran erkennt man Plugins, die das benutzen?

Die Plugins müssen dazu nur das Action-Widget im Template einbauen. Beispiel: {action controller=x} Du müsstest also nur einmal die Plugin-Templates nach “{action” durchsuchen. Gruß Heiner

Ich habe ein entsprechendes Plugin von mir gefunden, was aber nur das hier macht: class Shopware\_Controllers\_Widgets\_CbeCategoriesInfo extends Enlight\_Controller\_Action { /\*\* \* Controller action which can be called over ajax requests \*/ public function getCategoryinfoAction() { $articleId = $this-\>Request()-\>getParam('articleId', null); $config = Shopware()-\>Plugins()-\>Frontend()-\>CbeCategoriesInfo()-\>Config(); $select = " SELECT c.description, c.id FROM s\_articles\_categories ac, s\_categories c WHERE ac.articleID = ? AND ac.categoryID = c.id GROUP BY c.id ORDER BY c.description "; $categories = Shopware()-\>Db()-\>fetchAll($select, array($articleId)); $this-\>View()-\>assign('CategoriesInfoListed', $categories); $this-\>View()-\>assign('CategoriesInfoCompare', $config-\>compareCategory); } } Ich schaue also nur nach, ob ein Artikel in der Kategorie “NEU” vorkommt… Kann man da irgendwas schneller machen?

Hi nochmal, jetzt hab ich das Ding mal rausgemacht und siehe da, gleich 4 Punkte bei Page Insights mehr. Kannst Du das bestätigen? Hmm, ich muss doch auf performantere Art und Weise prüfen können, ob ein Artikel einer bestimmten Kategorie zugehörig ist. Menno!

Hi, das Plugin kannst du so lassen. Du musst nur noch die Route bzw. die Cachezeit im httpCache-Plugin hinterlegen. Beispiel: widgets/CbeCategoriesInfo 3600 Das müsste auch über eine Methode in der Bootstrap.php gehen. :slight_smile: Gruß Heiner

Wie kann man das denn über eine Methode in der Bootstrap regeln? Gibts da was im Wiki? Dankeschön erstmal für den Hinweis, denn ich suche schon lange nach einer Erklärung für die miserable Performance!

Hi, http://community.shopware.com/Cache-Per … figurieren Dort gibt es die Tabelle, wo schon einige Controller aufgeführt sind. Nach dem Schema trägst du deinen mit der gewünschten Cache-Zeit dort ebenfalls ein Sebastian

Ja, danke, das ist klar und habe ich jetzt gemacht, ich meinte eher die Methode für die Bootstrap. Oder einfach beim Installieren des Plugins in die Tabelle eintragen?

Shopware 5 :slight_smile: https://developers.shopware.com/develop … s/#500-rc2 implement plugin bootstrap helper functions: addHttpCacheRoute and removeHttpCacheRoute, to add and remove http cache routes. Gruß Heiner

1 „Gefällt mir“