E-Commerce

So helfen Sie Magento auf die Sprünge

29.05.2011
Von 
Ralf Lieser bringt mehrjährige Erfahrung in der Software-Entwicklung sowie der Architektur und Integration von E-Commerce-Plattformen auf Basis von Magento mit. Sein Aufgabenspektrum deckt dabei das operative Projektgeschäft ebenso ab wie die strategische Weiterentwicklung von Magento-spezifischen Geschäftspotenzialen. Als Leiter des Qualitätsmanagements bei der netz98 new media GmbH überwacht er die effiziente Umsetzung von E-Commerce-Projekten – im Zweifel bis hinab auf die Code-Ebene – und kennt die Bedürfnisse von KMUs und großen Unternehmen.

Cachen, konfigurieren und planen

5) Cache, Cache, Cache

So sieht die Admin-Oberfläche von Magento aus.
So sieht die Admin-Oberfläche von Magento aus.
Foto: Magento Inc.

Magento kann die verschiedenen Caching-Techniken von Memcached, Xcache, APC und eAccelerator nutzen. Auch wenn die Einrichtung im ersten Moment schwierig anmutet, ist es fast schon Pflicht, einen Cache zur Performance-Optimierung einzusetzen. Geht es um das Ausliefern von Bildern und Grafiken, hat sich der Varnish Cache bewährt. Im Idealfall werden Bilder von einer anderen (Sub-)Domain geladen und über einen Varnish ausgegeben. Sehr beliebt ist darüber hinaus das Ausliefern von Bildern über einen oder mehrere CDN-Server. Ein solches Content Distribution Network verteilt die Dateien über mehrere Rechner und entlastet so den Web-Server der Magento-Installation.

Shop-Betreiber, die auf die Enterprise-Version zurückgreifen, kommen in den Genuss eines Fullpage-Caches. Hierbei werden alle Shop-Seiten, abgesehen vom Warenkorb und vom Checkout-Prozess, in einen Cache gespeichert, so dass der Server beim Aufruf einer Produktliste oder einer Produktseite nur noch eine HTML-Seite ausliefern muss. Die Schattenseite der Fullpage-Cache-Medaille betrifft die Aktualität der Seiten. Rechtlich sensible Informationen wie die Verfügbarkeit eines Produkts sollte man gegebenenfalls via Ajax nachladen, um Kunden keine falschen Informationen zu geben.

6) Konfiguration der Umgebung

Auch außerhalb von Magento gibt es viele weitere Stellen, an denen sich zu optimieren und konfigurieren lohnt, beispielsweise beim Apache2. Dieser lädt in der Standardinstallation häufig viele Mods mit, die man in der eigenen Umgebung gar nicht benötigt. Eventuell kann man an dieser Stelle sogar viel härter eingreifen und anstelle von Apache2 einen Ngix oder lighttpd einsetzen. Es bedeutet zwar relativ viel Konfigurationsarbeit, um einen Magento-Shop mit diesen Web-Servern zum Laufen zu bringen, aber das Ergebnis lohnt sich. Die Aktivierung von "mod_defalte" oder "zlib.output_compression" bringt häufig entscheidende Millisekunden. Das Gleiche gilt für das Einstellen der "mod_expire"-Daten für die Header im Apache2. Auch die Datenbankinstallation lässt sich optimieren. Häufig ist es eine Frage von einigen Lasttests, um die richtigen Einstellungen für Logs, Query-Cache etc. zu finden.

7) Fehler machen langsam

Eine ungewöhnlich große Bremse in Magento-Shops sind 404-Fehlerseiten, also das typische "Die Seite konnte leider nicht gefunden werden". In den Server-Logs finden sich alle nötigen Hinweise, um herauszubekommen, wo und warum die-se 404-Fehler auftreten. Zudem werden häufig Grafiken in Templates oder CSS-Dateien an der falschen Stelle geladen. Der Server kann die Datei dann nicht finden und quittiert dies mit einer 404-Fehlermeldung, die ein Shop-Betreiber vielleicht nie bemerkt. Denn wer vermisst schon eine durchsichtige 2x2-Pixel-Datei?

8) Planung geht über alles

Nicht vergessen werden sollte, wie sehr auch der menschliche Faktor die Performance beeinflussen kann. Stichwort: OSI-Layer-8-Problematik. Jeder noch so optimierte und performante Shop wird in die Knie gehen, wenn beispielsweise um 8 Uhr morgens ein Newsletter mit "20 Prozent Rabatt auf alles" versandt wird und bis 14 Uhr noch der Import der letzten Produkt-Updates läuft.