Geschwindigkeit ist durch nichts zu ersetzen…

Mehr Geschwindigkeit für Magento

Hinweis: Dieser Artikel ist in erster Linie an interessiete Programmierer gerichtet. Einzelne Teile, die sich speziell auf bestimmte Programmteile beziehen und deren Optimierung beschreiben wurden daher nicht übersetzt.

In den letzten Monaten wurde etliche Bereiche von Magento einer Performance-Analyse unterzogen. Da die Funktionen für Version 1.0 nun weitestgehend vorhanden sind, möchten wir einen kleinen Einblick bieten, wie Magento noch schneller und besser geworden ist.

Mit solch umfangreichen Funktionen und der beeindruckenden Flexibilität von Magento wird die Geschwindkeit des Systems manchmal zum Problem. Aber in jeder noch so kleinen Verbesserung steckt auch eine Verbesserung der Geschwindkeit. Die ersten merklichen Unterschiede finden sich im letzten Release.

Enhanchements (englisch)

Durch unsere Performancetests der letzten Zeit haben wir ermitteln können, dass Magento in der Version 0.8.17240 nahezu doppelt so schnell ist wie seine Vorgänger. Die folgende Grafik zeigt einen Ladetest mit Apache Benchmark (ab) - im Vergleich: zwei unterschiedliche Magento Versionen.

image

DYI (Do it Yourself) Performance Enhancements

Sind Sie Betreiber eines eigenen Servers, auf dem auch Magento läuft? Dann können Sie selbst etliche Verbesserungen vornehmen, damit Magento mit möglichst guter Geschwindigkeit arbeiten kann:

Ausschnitte einer Beispielkonfiguration my.cnf:

image

Time to Cluster?

Wie jeder weiß, bedeuted wachsendes Geschäft wachsende Probleme. Wenn Ihr Webshop Erfolg hat, benötigen ohne Zweifel mehr Power, um Ihre Kunden zu befriedigen. Das bedeutet: Raus aus der Einzel-Server-Welt - hinein ins Universum des Clusters mit zwei und mehr Servern.

Es gibt verschiedene Möglichkeiten, dies umzusetzen. Der wohl gängigste Weg ist es, mehrere Webserver hinter einem LoadBalancer zu vereinen. Diese Methode ist sehr beliebt, da (a) Webserver billiger als Datenbankserver sind; und (b) es gibt keine Grenze für die Zahl der Webserver.

Hinweis: Magento bietet keine Möglichkeit, automatisch Produktabbildungen auf unterschiedliche Systeme zu veröffentlichen. Sollten Sie von entsprechenden System wenig verstehen, beauftragen Sie bitte einen versionierten Programmierer oder versuchn Sie eine alternative Methode, um Magentos Performance zu verbessern.

Ein anderer Weg, Magento zu mehr Geschwindigkeit zu verhelfen wird “database replication” genannt. Bei dieser Variante stehen zwei oder mehr Datenbankserver im Cluster zur Verfügung. Einer davon bildet den “master” und die restlichen "slaves.” Der "master" ist der einzige server, der Schreibzugriffe erlaubt. Diese Schreibzugriffe werden dann in nahezu Echtzeit auf die anderen Rechner kopiert. Der Vorteil dieser Technik ist, dass Magento Lesezugriffe von jedem beliebigen "slave" durchführen kann, um die Schreibzugriffe für einen einzigen Server zu belassen. Eine Datenbank ist erfahrungsgemäß schwer horizontal zu skalieren, daher bietet sich die Replikation hier als guter Kompromiss an!

Ein Setup für eine solche MySQL-Konfiguration würde den Rahmen sprengen, aber bei Interesse können wir Sie an entsprechende Partner mit dem notwendigen Fachwissen weiterleiten. Hier gibt es ein Tutorial, das alle Details erklärt.

Wenn die MySQL-Replikation schließlich funktioniert, ist es leicht, Magento für den Zugriff auf verschiedene Datenbankserver zu konfigurieren. Die einzige Datei, die dazu bearbeitet werden muss, ist app/etc/local.xml. Nachfolgend finden Sie ein entsprechendes Bespiel. Wie Sie sehen können, werden zwei Datenbank-Verbindungen eingerichtet. Eine default_setup und eine default_read. Die default_setup Verbindung wird für alle Schreibzugriffe verwendet, default_read hingegen für alle Lesezugriffe.

Beispiel: app/etc/local.xml: image

Dieser Beitrag deckt nur einige wenige Möglichkeiten auf, um die Performance einer Seite zu verbessern. Jedes Szenario eines Websitebetreibers ist unterschiedlich, also ist es in den meisten Fällen sinnvoll, einen Fachberater hinzu zu ziehen. Sollten Sie jedoch fit mit Linux sein und vor Konfigurationsdateien keine Scheu haben, versuchen Sie es doch einmal mit unseren Vorschlägen. Sie werden sicherlich überrascht sein.

Sie haben noch Vorschläge? Dann treten Sie der Gruppe Magento Performance and Optimization Group bei und diskutieren Sie mit!