Get Ready for Black Friday– mit K6 und Tideways

Group 54
team_profile_jonas
von Jonas Niebergall CEO Veröffentlicht am 19.09.2024 13 Minuten Lesezeit

Der Black Friday steht vor der Tür und das bedeutet Hochbetrieb im E-Commerce! Während Kunden sich auf Angebote stürzen, kämpfen viele Online-Shops mit hohen Lasten, die ihre Systeme an die Grenze bringen. Ein langsamer oder gar nicht erreichbarer Onlineshop kann schnell zu Umsatzeinbußen führen und das Vertrauen der Kunden schädigen. Wie kannst Du sicherstellen, dass Dein Magento-Shop auch an diesem wichtigen Tag reibungslos läuft?

In diesem Artikel zeigen wir Dir, wie Du Deinen Shop mit Tools wie K6 und Tideways auf den großen Traffic-Ansturm vorbereiten und potenzielle Engpässe beseitigen kannst. 

TL;DR:

  • Lasttests mit K6: Simuliere hohe Traffic-Spitzen und identifiziere Schwachstellen in Deinem Onlineshop durch simulierte Lasttestszenarien. Was sind die typischen Schwachstellen in Magento.
  • PHP-Profiling mit Tideways: Überwache die Performance Deiner PHP-Anwendung in Echtzeit, um Engpässe wie langsame Datenbankabfragen und Infrastrukturprobleme zu identifizieren.
  • Optimiertes Hosting mit maxcluster: Ein auf Magento spezialisierter Hoster sorgt für schnelles Caching, Session-Handling und stabile Performance bei hohem Traffic.
  • Frontend-Optimierung mit Cloudflare: Nutze ein CDN, um die Serverlast zu reduzieren und statische Inhalte schneller auszuliefern.

Darum sind Lasttests entscheidend - Ausfälle vermeiden

Eine Studie zum Black Friday 2023 zeigt, welcher Last E-Commerce Plattformen an Tagen wie Black Friday ausgesetzt sind. Der deutsche Onlinehandel hat ein Umsatzplus von 203 % verzeichnet. Die Systeme mussten dabei die doppelte Anzahl an Aufrufen sowie die dreifache Anzahl an Bestellungen bewältigen. 

Um sicherzugehen, dass Dein System den erhöhten Anforderungen standhält, sind Lasttests unverzichtbar. Sie simulieren realistische Szenarien und ermöglichen es Dir, Schwachstellen frühzeitig zu erkennen und zu beheben, damit es nicht zu Ausfällen kommt.

Lasttests mit K6 – Deine Traffic-Spitzen im Griff

Was ist K6?

https://k6.io/docs/K6 ist ein modernes Lasttest-Tool, das dabei hilft eine hohe Besucherlasten zu simulieren. Das Tool ist als self-hosted Variante und SAAS - Variante verfügbar. Mit der SAAS - Variante kannst Du Lastszenarien sofort und ohne eigene Infrastruktur durchspielen. K6 bietet dabei detaillierte Einblicke in die Performance Deines Onlineshops und zeigt Dir, wie sich Dein System bei steigender Last verhält.
Neben Spike-, Stress- und Soak-Tests können mit K6 auch Browser-Performance-Tests durchgeführt werden. Dadurch können browserbezogene Performance-Probleme identifiziert werden. Darüber hinaus kann dies mit anderen Tests wie automatisierten Performancetests, Chaos- und Stresstests sowie Infrastrukturtests kombiniert werden, um einen umfassenden Überblick zu erhalten.

Wie setzt Du K6 ein?

Um Deinen Onlineshop optimal zu testen, solltest Du verschiedene angenommene Traffic-Szenarien simulieren. 

Hier sind einige wichtige Test-Cases:

  • Startseite: Die Startseite ist oft der erste Berührungspunkt für Besucher. Teste, wie sie sich bei einem großen Ansturm verhält.
  • Beworbene Aktionsseite: Black Friday Deals stehen im Fokus – besonders die Seiten mit speziellen Angeboten.
  • Suchfunktion: Bei hohen Besucherzahlen wird die Suchfunktion verstärkt genutzt. Hier solltest Du auf Reaktionszeiten und Stabilität achten.
  • Top 10 Kategorieseiten: Teste die meistbesuchten Kategorieseiten Deines Shops, um sicherzustellen, dass sie auch unter Last schnell geladen werden.
  • „Add-to-Cart“: Besonders wichtig! Diese Aktion kann nicht gecached werden, wodurch die Datenbank stark beansprucht wird. Hier kann es schnell zu Engpässen kommen. Damit kannst Du ähnliche Schwachstellen in der Infrastruktur und dem System identifizieren, wie es mit einem Test für den Checkout möglich ist - jedoch mit erheblich weniger Aufwand.

Mit K6 kannst Du alle diese Testfälle durchspielen und siehst, bei welchen Besucherzahlen Deine Infrastruktur ins Schwitzen gerät.

Die ausführliche Dokumentation des Herstellers bietet eine hervorragende Anleitung, wie man K6 aufsetzt und Tests erstellt.

Flaschenhälse eines Magento Setups

Beim Schreiben der Laststest ist es sehr hilfreich zu wissen, welche potenziellen Schwachstellen ein System aufweisen könnte. So können gezielt diese Schwachstellen getestet werden. Der Test wird dennoch auch Schwachstellen aufzeigen, mit denen Du nicht gerechnet hast.

1. Redis (Cache und Session-Handling)

Potenzielle Flaschenhälse:

  • Memory Limit: Redis speichert Daten im RAM. Wenn der verfügbare Arbeitsspeicher erschöpft ist, wird Redis gezwungen, Daten aus dem Cache zu entfernen oder die Leistung drastisch zu senken.
  • Single-threaded Operation: Redis arbeitet grundsätzlich mit nur einem Thread. Bei einer sehr hohen Anzahl von Anfragen kann es deshalb zu einer Überlastung kommen, da Redis nicht automatisch mehrere Threads nutzt, um die Last besser zu verteilen.

Folgen:

  • Langsamere Datenabrufe und -speicherungen im Cache.
  • Verzögerungen im Session-Handling, was dazu führt, dass Benutzeranfragen länger dauern oder sogar fehlschlagen.
2. Varnish (Fullpage-Caching)

Potenzielle Flaschenhälse:

  • Cache-Miss: Wenn eine Seite nicht im Cache gespeichert ist (Cache Miss), muss der Webserver die Seite dynamisch generieren, was länger dauert als ein Cache-Treffer (Cache Hit). Das ist besonders problematisch, wenn viele Benutzer gleichzeitig auf dynamische, nicht gecachte Seiten zugreifen.
  • Speicherlimit und Cache Invalidation: Wenn Varnish den verfügbaren Cache-Speicher überschreitet, werden ältere Inhalte entfernt. Dies führt zu häufigeren Cache Misses. Ebenso kann die Cache-Invalidation (das Löschen von gecachten Inhalten bei Aktualisierungen) die Performance beeinträchtigen, insbesondere bei häufigen Content-Änderungen.
  • Netzwerk-Overhead: Wenn der Varnish-Server geografisch weit vom Nutzer entfernt ist oder nicht richtig optimiert wurde, können zusätzliche Latenzen durch die Netzwerkanbindung entstehen.

Folgen:

  • Erhöhte Ladezeiten bei dynamischen Seiten.
  • Verzögerungen in der Benutzerinteraktion und geringere Serverkapazität für gleichzeitige Anfragen.
3. OpenSearch (oder Elasticsearch für die Suche)

Potenzielle Flaschenhälse:

  • Hochfrequente Suchanfragen: Besonders bei der Autosuggest-Funktion kann eine hohe Anzahl an gleichzeitigen Anfragen die Suchengine überfordern. Jede Eingabe eines Benutzers sendet eine neue Anfrage, was bei hohem Traffic zu einer hohen Last führen kann.
  • Katalogseite in Magento: In Magento wird die Katalogseite direkt aus OpenSearch geladen. Hoher Traffic auf der Katalogseite führt somit zu einer zusätzlichen Belastung der Suchengine, sofern diese nicht im Varnish Cache gecached sind. Wenn der Suchdienst überfordert ist, kann dies nicht nur die Suchfunktion, sondern auch die Anzeige der Katalogseite erheblich verlangsamen.
  • Indexierungsprozesse: Wenn die Suche parallel zur Indexierung von Daten abläuft, können konkurrierende Ressourcenanforderungen die Antwortzeiten verlängern.

Folgen:

  • Verzögerungen bei der Anzeige von Suchergebnissen.
  • Schlechte Benutzererfahrung, insbesondere bei der Autosuggest-Funktion.
  • Langsame Ladezeiten der Katalogseiten
4. Nginx / Apache (Webserver)

Potenzielle Flaschenhälse:

  • Anzahl der gleichzeitigen Verbindungen: Wenn Nginx oder Apache die maximale Anzahl gleichzeitiger Verbindungen erreicht, kann es neue Verbindungen ablehnen oder verzögern.
  • Fehlende Optimierung von PHP-FPM: Da Nginx wie Apache häufig mit PHP-FPM arbeitet, kann eine schlechte Konfiguration von PHP-FPM (z. B. zu wenige Worker-Prozesse) dazu führen, dass nicht genügend PHP-Prozesse verfügbar sind, um eingehende Anfragen schnell zu bearbeiten.

Folgen:

  • Langsame Ladezeiten oder Timeouts bei der Verbindung.
  • Übermäßige Latenz, bevor der Benutzer eine Antwort erhält.
5. Datenbank (MySQL oder MariaDB)

Potenzielle Flaschenhälse:

  • Locking bei Transaktionen: Wenn viele Schreib- oder Lesevorgänge gleichzeitig auf dieselben Datenbanktabellen zugreifen, können Sperren (Locks) auftreten, die andere Anfragen verzögern.
  • Suboptimale Abfragen: Ineffiziente Datenbankabfragen oder fehlende Indizes können dazu führen, dass die Datenbank sehr lange benötigt, um Ergebnisse zu liefern.
  • I/O-Engpässe: Wenn die Datenbank auf langsamen Festplatten läuft oder zu wenig RAM für den Datenbank Cache zur Verfügung steht, wird die Schreib-/Lese-Performance erheblich beeinträchtigt.

Folgen:

  • Verzögerungen beim Laden von Produktseiten, besonders wenn viele Produktdaten abgerufen werden müssen.
  • Langsame Aktualisierungen im Warenkorb oder bei Checkout-Prozessen.

Zusammengefasst:

In einem Magento-Shop wirken all diese Komponenten zusammen, und ein Lasttest mit K6 kann diese gezielt stressen, um die Schwachstellen aufzudecken. Indem du z.B. gezielt die Autosuggest-Funktion der Suche mit vielen Anfragen belastest oder den Wechsel zwischen gecachten und nicht gecachten Seiten provozierst, kannst du potenzielle Flaschenhälse wie Cache Misses, überlastete Redis-Sessions oder langsame Datenbankzugriffe identifizieren. Die Erkenntnisse aus diesen Tests helfen, gezielt zu optimieren und Engpässe zu beheben, um die Performance insgesamt zu verbessern.

K6

Bei dieser Grafik wurden 11.837 Anfragen bei einer Spitzenlast von 47 Anfragen pro Sekunde (RPS) durchgeführt, ohne HTTP-Fehler, und die 95. Perzentil-Antwortzeit beträgt 232 ms. Die Grafik visualisiert die Anzahl der virtuellen Nutzer (VU) sowie die Anfragen pro Sekunde (gelbe Linie) und die Antwortzeit (blaue Linie) über die Zeit, wobei das System stabil und ohne Fehler performt hat.

PHP-Profiling mit Tideways – Schluss mit Rätselraten

Was ist Tideways?

Tideways ist ein leistungsstarkes PHP-Profiling-Tool, das die Performance Deiner Webanwendung in Echtzeit überwacht. Besonders bei einem komplexen Shopsystem wie Magento ist es wichtig, Engpässe schnell zu erkennen, da es auf vielen Ebenen mit Datenbanken, PHP-Prozessen und Drittanbieter-Integrationen arbeitet.

Wie hilft Tideways Deinem Shop?

Tideways bietet detaillierte Einblicke in die Performance Deiner PHP-Anwendung und hilft Dir dabei, Engpässe wie langsame Datenbankabfragen oder Probleme mit der Infrastruktur (z.B. Redis Cache / Session Abfragen) zu identifizieren. Mit Echtzeit-Monitoring kannst Du die Performance auch während des Black Friday überwachen und sofort reagieren, falls es zu hohen Ladezeiten oder Ausfällen kommt.

Key Features von Tideways:

  • PHP-Profiling: Analysiert die Ausführungszeiten einzelner PHP-Skripte und zeigt Dir, wo es zu Verzögerungen kommt.
  • Datenbank-Monitoring: Identifiziert langsame Datenbankabfragen und gibt Dir Einblicke, welche Queries optimiert werden müssen.
  • Echtzeit-Alerts: Tideways benachrichtigt Dich sofort, wenn es zu Problemen kommt, damit Du schnell handeln kannst.
Tideaways

Der richtige Hoster macht den Unterschied - Unser Partner maxcluster

Neben Lasttests und PHP-Profiling ist die Wahl des richtigen Hosters entscheidend. Für Magento-Shops empfiehlt es sich, auf einen spezialisierten Hoster zu setzen, der mit den Anforderungen dieser Plattform vertraut ist. 

Vorkonfigurierte und für Magento optimierte Varnish und Redis Setups, ermöglichen schnelles Caching und effizientes Session-Handling.

Unser Partner, die maxcluster GmbH, bietet eine speziell auf Magento optimierte Hosting-Lösung an. Mit einer auf die Magento Plattform abgestimmten Infrastruktur werden schnelle Ladezeiten und Stabilität sichergestellt – auch bei hohen Lasten wie am Black Friday.

Frontend optimiert ausliefern mit Cloudflare – Schnelligkeit zählt

Schnelle Ladezeiten sind entscheidend, besonders an verkaufsstarken Tagen. Ein optimiertes Frontend, unterstützt durch ein Content Delivery Network (CDN) wie Cloudflare, reduziert die Serverlast erheblich. Ein CDN sorgt dafür, dass statische Inhalte wie Bilder komprimiert und von den CDN Servern ausgeliefert werden, was die Ladezeiten deutlich verbessert und deine Infrastruktur von Anfragen entlastet.
Verwende Tools wie Google PageSpeed Insights, um Schwachstellen im Frontend hinsichtlich der Ladezeit zu identifizieren und diese vor dem Black Friday zu beheben.

Bildschirmfoto 2024-09-18 um 11.07.42

Fazit: So machst Du Deinen Shop fit für Black Friday und weitere Spitzentage

Mit einer Kombination aus Lasttests, PHP-Profiling und einer optimierten Infrastruktur kannst Du sicherstellen, dass Dein Magento-Shop auch an Tagen mit hohem Traffic wie dem Black Friday stabil bleibt. K6 und Tideways sind ideale Tools, um Schwachstellen frühzeitig zu erkennen und zu beheben.

Magento-Performance Quick Check

Du möchtest Deine Magento-Performance noch genauer unter die Lupe nehmen? Dann nimm unseren kostenlosen Magento Performance Quick Check in Anspruch. Hierbei zeigen wir Dir gezielt auf, wo in deinem Magento Onlineshop die größten Hebel für Page Speed Optimierungen liegen. Interesse? Schau auf unserer Landingpage vorbei und fülle das Formular aus.