Magento zertifiziert
Magento

Performance-Analyse für Magento

Performance-Analyse für Magento

Ziel

Performance ist bei Magento eines der zentralen Themen. Es gibt kaum einen Shop, bei dem man nicht an einigen Stellen die Geschwindigkeit verbessern möchte. Aber wie relevant sind diese Stellen? Wie groß ist der Einfluss einzelner langsamer Seiten auf das Gesamtergebnis? Oder aus Sicht des Kunden gedacht: Lohnen sich die Kosten für die Optimierung überhaupt oder kann ich mit einzelnen Ausreißern leben? Wir wollten ein Werkzeug schaffen, welches dabei hilft, genau diese Fragen explizit für Magento zu beantworten.

Hintergrund

In den letzten Jahres sind viele Kunden zu uns gekommen, mit dem Gefühl, dass ihr Shop langsam sei. Genau quantifizieren konnten sie es jedoch selten. Der übliche Prozess bei derartigen Anfragen ist, entweder eine Auswertung der Access Log Zeiten des Web-Servers, wenn vorhanden oder die Installation von Profiling-Werkzeugen wie New Relic. Wir wollten jedoch etwas von diesem Weg abweichen, zum einen um ein genaueres Bild zu bekommen und zum anderen nicht an Stellen zu optimieren, die wenig relevant sind.

Insbesondere bei Kunden, die bereits Profiling-Werkzeuge benutzten, ergab sich oft ein verzerrtes Bild der Notwendigkeit für Optimierungen. Da hier nur die Requests erfasst werden, welche nicht über einen externen Cache ausgeliefert werden, suggerierte das Ergebnis eine Performance des Shops, welche nicht repräsentativ für das Gesamtergebnis war. Wird eine Seite zu 99% aus dem Cache ausgeliefert, ist eine Optimierung der Erstellung der Seite ohne Cache sicher wünschenswert, aber nicht entscheidend für die Gesamt-Performance.

Unsere Lösung

Tofex Profiling

Zunächst haben wir Magento dahingehend erweitert, dass Meta-Informationen über den Request in der Response ergänzt werden, d.h. welche interne Action wurde aufgerufen in welchem Store mit welchen Parametern? Diese Informationen werden auch von externen Caches wie Varnish gespeichert und mit an den vorgelagerten Web-Server ausgeliefert, sodass dort immer der entsprechende Magento-Context erkennbar ist. Insbesondere bei SEO-Urls lässt sich so unterscheiden zwischen Produktdetail-, Kategorie- oder CMS-Seiten.

Sowohl für Nginx als auch Apache haben wir ein spezielles Log-Format erstellt, welches diese Informationen nach Ausführung des Requests speichert, mit der jeweiligen Antwortzeit der Anfrage. Somit lassen sich Requests, welche direkt von Magento verarbeitet werden, sowie Requests, welche aus dem Cache ausgeliefert werden in Relation setzen, sodass man erkennt, wie groß der Anteil von Anfragen an einen bestimmten Seitentyp ist, die fertig aus dem Cache ausgeliefert werden.

Anschließend wird dieses Log-File über Telegraf in eine InfluxDB eingelesen. Mit diesen Daten lassen sich nun Auswertungen generieren, die im Backend von Magento verfügbar sind. Über Magento deshalb, weil wir keine extra Oberfläche für den Kunden einführen wollten. So kann der Kunde auch selbst regelmäßig den Stand überprüfen, ohne sich in eine neue Anwendung einarbeiten zu müssen.

Konkret kann man sich nun sortiert nach Seiten-Typ ansehen, wie die Antwortzeiten der einzelnen Requests waren, sowie eine Gewichtung des Gesamtergebnisses einzelner Seiten, sodass klar wird, an welchen Stellen eine Optimierung dringend notwendig ist und an welchen Stellen mit einzelnen langsamen Prozessen das Gesamtergebnis kaum beeinflusst wird.

2019-07-20 14:12:49
Warum entwickeln wir eigene Extensions? Warum verkaufen wir keine Extensions?

Kontakt

Tofex UG
Leutragraben 1
D-07743 Jena

Telefon: +49 3641 559 87 40
E-Mail: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!