News anzeigen (31)   News-Kategorien anzeigen



Shopware Performance Guide für Profis


Banner Shopware

Es wurden schon sehr viele Performance Beiträge für das Universum rund um Shopware geschrieben. Wir möchten hier nur aufnehmen, was wir an anderer Stelle bislang nicht oder nur schwierig finden konnten, und uns entweder massive Kopfschmerzen verursacht oder aber uns im Alltag viel Ärger erstpart hat. Zu den klassischen Dingen die wir in Sachen Shopware Performance vorraussetzen gehören die folgenden Aspekte, auf die an anderer Stelle schon zur Genüge eingegangen wurde.

 

  WAS WIR VORRAUSSETZEN : 
 

  • PHP-Version -> PHP7+

  • Webserver Empfehlung: nginx

  • Immer die aktuelle Version von Shopware nutzen

  • HttpCache-Vorhaltezeit erhöhen

  • weniger Kategorien und mehr Filter für die Produkt Listings benutzen

  • CSS- und JS-Dateien komprimieren

  • Cronjobs aktivieren bei den Grundeinstellungen für Suche, SEO, Topseller und Empfehlungsmarketing

  • Komprimierte Bilder für schnelleren Page Speed -> webp

  • Content-Delivery-Network (CDN)

  • GZIP-Modul bei Deinem Webserver

  • CacheWarmUp jede Nacht

WAS WIR ÜBER DIE LETZTEN JAHRE INTENSIVER SHOPBETREUUNG NOCH AN TIPPS UND TRICKS IN SACHEN PERFORMANCE GEFUNDEN HABEN

  HTML-MINFIER BEI GROSSEN SHOPS DEAKTIVIEREN  

 

Ebenfalls durch Tideways konnten wir teilweise extrem langsame Seitenaufrufe identifizieren und diese auf ein Problem im "neuen" HTML-Minifier von Shopware zurückführen. Wie einige Forenbenutzer auch im Shopware Forum beschreiben, wird eine Regex verwendet, welche sich in bestimmten Konstellationen als extrem imperformant herrausstellt. Shopware hat mittlerweile reagiert und die Funktion, welche im Backend unter Performance > Einstellungen > Allgemein > Verschiedenes zu finden ist, ist seit 5.6.7 standardmäßig inaktiv.

Lösung A: Performance > Einstellungen > Allgemein > Verschiedenes -> HTML Komprimierung aktivieren -> nein

Lösung B: Regex Funktion gemäß der Tipps im Shopware Forum tauschen. Hier geht es zum Beitrag.

 

  HOHE SERVERLAST BEI OPENBASEDIR  

 

Es gibt mittlerweile einige Berichte darüber, dass es auf Systemen mit aktiviertem open_basedir zu Beeiträchtigungen bei der Performance kommt. Auch wir konnten durch Messungen mit tideways in einigen unserer Shops nachweisen, dass 50% der Ladezeiten (TTFB) nur für File I/O draufgehen. Und das für standard Aufrufe im Bereich der Dateioperationen wie file_exists(). Zu Grunde liegt ein Bug in PHP. Quelle: https://bugs.php.net/bug.php?id=77406

Wir konnten zwei Lösungen hierfür etablieren:

Lösung A: "open_basedir" deaktivieren. Hier solltest du dir aber vorher einmal durchlesen wozu open_basedir  überhaupt gut ist, z.B. hier https://stackoverflow.com/a/3211621

Lösung B: /engine/Shopware/Kernel.php, Zeile 547, //always check for file modified time -> auf false setzen. Hier entstanden in all unseren Shops mit der Problematik die höchsten Kosten für I/O.

 

  SHOPÜBERWACHUNG MIT TIDEWAYS  

 

Tideways ist ein Tool für Monitoring, Profiling und Tracking in PHP. Es analysiert serverseitige PHP-Prozesse und kann einzelne Seiten aber auch deinen gesamten Onlineshop analysieren.

Für uns ist Tideways inzwischen zu einem unabdingbaren Werkzeug geworden um sicherzustellen dass unsere Shops auch kontinuierlich schnell laufen. Tideways informiert euch selbstständig über Fehler die im Shop auftreten (die ihr wahrscheinlich gar nicht bemerkt, eure Kunden aber schon), über langsame Seiten in eurem Shop und über Downtimes. Das Profiling und Tracking hilft Technikern extrem beim Isolieren der Problemstellen und minimiert die Zeit zwischen Auftreten und Beseitigen eines Problems.

Du brauchst Hilfe bei der Einrichtung oder Benutzung von Tideways? Melde dich gerne bei uns.

 

  MOD PAGESPEED 

 

mod_pagespeed  ist ein kostenloses Tool, das von Google entwickelt wurde um die Usability und Performance von Webseiten für Mobile und Desktop-Anwendungen automatisch zu optimieren. Das Open-Source--Modul wendet automatisch Best Practises für die Webleistung und dazugehörige Asstes wie CSS, JavaScript und auch Bilder an, ohne dass Du selber agieren  und vorhandene Inhalte oder Workflows ändern musst.

Mod PageSpeed basiert auf den PageSpeed Optimization Libraries, die über bekannten Hosting und CDN-Anbietern wie GoDaddy, EdgeCast und DreamHost auf über 100.000 Websites bereitgestellt werden. Momentan stehen 40 Optimierungsfilter zur Verfügung, wie zum Beispiel Bildoptimierung und Größenänderung, Minimierung und Inlining von CSS und JavaScript, Cache-Erweiterung, Domain-Sharding, Domain-Rewriting – die Möglichkeiten der Optimierung sind hier breitgefächert.

Ein guter Hoster stellt euch eine bereits passend zu Shopware optimierte Config zur Verfügung.

 

  AMP (ACCELERATED MOBILE PAGES) 

 

 

AMP oder auch Accelerated Mobile Pages ist ein Tool, dass aus einer Zusammenarbeit zwischen Google und Twitter entstanden ist. Auch AMP ist ein Open-Source-Projekt und soll Dir dabei helfen, deine mobilen Inhalte/Websites zu optimieren, schneller zu machen und somit ein besseres Nutzererlebnis zu schaffen. AMP öffnet eine Seite in zwei Schritten – direkt nach dem Klick werden die Teile der Website sichtbar, die für den Nutzer wichtig sind, danach wird der Rest der Seite unbemerkt geladen. So bleibt die Datenmenge zu Anfang niedrig und die Ladezeit der Website auf dem mobilen Endgerät wird verbessert. Da Untersuchungen von Google zeigen, dass die Absprungrate von Nutzer auf bis zu 58 % steigt, wenn die Website zu lange lädt, ist AMP das perfekte Tool um dies zu verhindern und deine Pageviews zu verbessern.

Im Shopware Store gibt es bereits fertige Plugins.

 

  ELASTICSEARCH  

 

Elasticsearch ist perfekt für Onlineshops, die ein umfangreiches Produktsortiment mit mehreren Tausend Artikeln haben. Suchanfragen auf klassischen MySQL Datenbanken können hier echt träge werden, was die User Experience deutlich beeinträchtigt und sich damit in der Konversion niederspiegelt. Selbst bei Millionen von Artikeln oder einem hohen Besucheraufkommen, ist eine über ES realisierte Suche im Regelfall extrem schnell und gut skalierbar.

Aber was genau ist Elasticsearch überhaupt? Hierbei handelt es sich um eine Suchmaschine die auf der Apache Lucene Programmbibliothek basiert und Dokumente speichert, um diese schnell und einfach durchsuchen zu können. Die Dokumente sind hierbei die kleinste Einheit des Systems. Jedes Dokument wird zu Anfang indexiert. ElasticSearch teilt den Index dann in mehrere Bruchstücke (shards) auf, die wiederum auf mehrere Server (nodes) verteilt werden. Dadurch wird die Rechenlast auf diverse Systeme verteilt und die Ausfälle einzelner Server kann so leicht überbrückt werden. Der bereits genannte Index entspricht einer klassischen SQL-Tabelle und das Dokument einer Tabellenzeile. Die Software Elasticsearch ist in Java geschrieben und nutzt zum speichern der Dokumente das Datenformat JSON (JavaScript Object Notation).

Wer mehr über Elasticsearch + Shopware erfahren möchte, findet in den Shopware Docs weitere Infos dazu.

 

  REDIS CACHE  

 

Redis zeichnet sich durch eine sehr einfache Datenspeicherung in Form eines extrem effizienten Key Value Stores. Nicht nur große Onlineshops sollten immer auf die maximale Preformance setzen. Hier bietet Redis Stabilität, Skalierbarkeit und die notwendige Performance.

In Shopware Onlineshops kann mit Redis der Anwendungscache und ein zusätzlicher Model-Cache performanter zur Verfügung gestellt werden. Außerdem kann die Sessions in Redis abgelegt werden, was absolut Sinn macht, da diese ansonsten relativ inperformant in der MySQL Datenbank abgelegt ist. Die Installation kann ganz einfach über die config.php stattfinden. Viele etablierte Hoster bieten passendes Hosting inklusive Redis an.

 

Lisa Schulz
Lisa Schulz
vom 08.09.20 um 14:42

Hallo, mein Name ist Lisa. Ich betreue das EXWE Backoffice und bin für unsere Social-Media Kanäle zuständig. All unsere Artikel sollen dir das Leben erleichtern und eine Entscheidungshilfe sein. Trotzdem kann es mal vorkommen, dass etwas unklar bleibt, daher: Wenn du Fragen zu diesem Artikel hast erreichst du mich ganz einfach unter +49 231 93149827




Schreibe EXWE auf WhatsApp