Magento wird nachgesagt, es sei sehr ressourcenhungrig und langsam, wenn man nicht die richtige Hardware hat. Doch was ist die „richtige“ Hardware? In einem Tutorial zu diesem Thema haben wir die Magento Systemvoraussetzungen schon einmal beleuchtet. Jetzt hat Magento selbst eine Studie erarbeitet mit dem Titel „Optimizing Magento for peak perfomance“. Wir möchten eine kurze Zusammenfassung geben, wie Magento auch unter Spitzenlast optimal arbeitet und was das Fazit der Studie ist.
Testumgebungen
Um die Geschwindigkeit von Magento zu vergleichen gab es drei Konfigurationen:
- Standard: Apache + MySQL — Die wohl meist verbreitete Konfiguration, meist eingesetzt bei Hostern.
- Cache Optimized mit Varnish: Varnish + Apache + Percona MySQL — Eine mit Varnish optimierte Konfiguration.
- Cache Optimized mit Nginx: Nginx + PHP-FPM + Percona MySQL — Eine andere optimierte Konfiguration.
Testszenario
Folgendes Szenario wurde gewählt, um den Speed Test durchzuführen:
- Anzahl der Webseiten: 1
- Anzahl an Stores und StoreViews: 1
- Anzahl der Kategorien und Produkte: 50 Kategorien / 100.000 Produkte
- Benutzer pro Simulation: 2.800
- Konversionsrate zwischen 3% – 6%
- Seitenaufrufe: 100 Katalog-Seitenansichten/Sekunden
Hardware & Software Spezifikationen
Hardware:
- CPU: 2 x Intel® Xeon® CPU E5645 @ 2.40GHz
- HDD: RAID1 – LSI MegaRAID SAS 9260-4i; 2 x SAS 164GB 15,000rpm
- RAM: 24GB ECC
- Netzwerkkarte: Intel 1GB 82576
Software:
Folgende Software war auf den jeweiligen Test-Servern installiert:
- Magento Enterprise Edition 1.11.2.0
- Apache 2.2.15, mpm_prefork, mod_php
- PHP 5.3.10
- MySQL 5.5
- Pecl memcache 3.0.6
- Varnish 2.1.5
- Nginx 1.0.15
- PHP-FPM 5.3.10
- Percona MySQL 5.5
- Memcached 1.4.4
- Betriebssystem: Red Hat Enterprise Linux version 6.2 (Santiago) x86_64
Testergebnisse
Um es vorweg zu nehmen: Apache und MySQL ist am langsamsten. Aber der Reihe nach. Zunächst wurden die Sekunden pro Seitenansicht und Sekunden pro Bestellung verglichen.
Sekunden/Seitenansicht:
- Apache + MySQL: o,47 Sekunden
- Varnish + Apache + Perona MySQL: 0,01 Sekunden
- Nginx + PHP-FPM + Percona MySQL: 0,02 Sekunden
Sekunden/Bestellung:
- Apache + MySQL: 2,11 Sekunden
- Varnish + Apache + Perona MySQL: 1,05 Sekunden
- Nginx + PHP-FPM + Percona MySQL: 1,24 Sekunden
Zudem wurden die Seitenansichten und Bestellungen in 24 Stunden verglichen. Hier die Ergebnisse:
Seitenansichten/24 Stunden:
- Apache + MySQL: 79,5 Millionen
- Varnish + Apache + Perona MySQL: 378,4 Millionen
- Nginx + PHP-FPM + Percona MySQL: 373,2 Millionen
Bestellungen/24 Stunden:
- Apache + MySQL: 268.700
- Varnish + Apache + Perona MySQL: 487.300
- Nginx + PHP-FPM + Percona MySQL: 525.300
Fazit der Studie
Es zeigt sich also das bei großen Shops mit großem Besucherstrom sich Caching Mechanismen, auf Hochleistung getrimmtes MySQL und Prozessmanager erheblich auf die Geschwindigkeit von Magento auswirken. Zeit ist Geld, denn kein Kunde möchte warten, bis die gewünshte Seite geladen ist. Dauerts zu lange kauft er bei der Konkurrenz, und das kann sich ein Shopbetreiber auf lange sicht nicht leisten. Man sollte genau überlegen, ob man auf solche Werkzeuge verzichten kann.
Weiterführende Links
Wer die Studie in vollerLänge durchstöbern möchte kann sich auf der Magento Webseite die gesamte Studie als PDF herunterladen:
http://info.magento.com/Optimizing_Magento_for_Peak_Performance.html