eZ Publish Performance messen

Messen und Optimieren, das sind wichtige Punkte nach dem man ein Projekt online gestellt hat. Oft wird dies leider unterschätzt und im schlimmsten Fall gar nicht durchgeführt.

 

 

 

 

 

 

Auf dem eZ Publish Summer Camp in Bol wurde ein sehr interessanter Vortrag von Gaetano Giunta gehalten. Ich war überrascht, wie schnell und einfach man die Performance von Websites messen kann. Einige Tipps und Tricks möchte ich an dieser Stelle weitergeben.

Folgende Ressourcen sind für eZ Publish Projekte aber auch für andere Systeme wichtig und können schnell gemessen werden. 

  • RAM
  • CPU
  • IO (input/output) der Festplatte
  • Datenbank Anfragen 

Eines vorweg: Zeit nehmen bei der Messung und dran bleiben. Dies ist wichtig für eine dauerhafte Optimierung einer Webseite.  

Dieses Tests sollten in der Regel vor dem Live stellen durchgeführt werden. Es ist auch wichtig, die Tests nicht auf dem jeweiligen Live-Server durchzuführen – dev != prod, da dabei weitere wichtige Komponenten getestet werden können zum Beispiel Firewall, Netzwerk usw. 

Apache Bench
ist ein gratis Tool des Apache Servers und kann jederzeit durchgeführt werden. Leider ist es nicht ganz so flexibel wie andere Tools.

Dieses Script führt 100 GET Anfragen aus, davon imer 10 gleichzeitig.

ab -n 100 -c 10 http://www.ez-publish-blog.de

Dokumentation des Apache bench Befehls.

Siege
Ist anscheinend besser als der Apache Bench und kann ebenfalls kostenlos genutzt werden.

Dokumention von Siege 

Apache Jmeter
Mit diesem Tool können schon komplexe Tests durchgeführt werden, es benötigt jedoch Java und der Lernaufwand ist etwas höher. 

Dokumentation von Apache Jmeter 

Tools von Gaetano Giunta

Auf GitHub findet man zwei Tools mit denen man schnell und einfach seine Webseite testen kann. 

ezab.php und abrunner.php  (Readme)

 

 

 

 

Installation von abrunner

Wie eben erwähnt, stehen beide Tools auf GitHub zur Verfügung. 

wget https://raw.github.com/gggeek/ezab/master/abrunner.php

und schon kann man den Test durchführen. Wichtig: Führe diesen Test nicht auf deinem Webserver aus, das würde nur den Test verfälschen. 

php abrunner.php -s www.ez-publish-blog.de -u / -c "1 2 4 8 16" -a

Nun wird im Verzeichnis in dem abrunner abgelegt ist ein Verzeichnis angelegt – test_logs. Darin befindet sich eine CSV (satt dem / im Befehl kannst du auch einen Namen angeben) mit dem / heißt das CSV _.csv

Aus dem CSV kannst du nun eine schöne Grafik in Excel, OpenOffice oder Libre Office erstellen. 

HTTRACK
Ein weiteres sehr nettes Tool, welches fast auf jedem System installiert werden kann. Für Windows gibt es sogar eine GUI.

sudo apt-get install webhttrack
sudo /usr/lib/httrack/htsserver /usr/share/httrack/

 Weitere Informationen auf der HTTRACK Webseite.

 eZ Performance Logger

Mit der kostenlosen Erweiterung kannst du sehr gut eZ Publish Projekte messen. Mit Munin lassen sich dann die Daten schön in eZ Publish visualisieren.

Die Erweiterung benötigt

Datenbankänderungen sind für die Installation nicht nötig. Probiere bei den Tests die jeweiligen Cache Einstellungen in eZ Publish zu deaktivieren – ViewCache etc. sowie falls vorhanden Varnish

Bevor man die jeweiligen Tools ausführt, sollte man sich mit den möglichen Zugriffen auf der Seite auseinander setzen. Am Besten ist es, dies im Vorfeld mit dem Kunden abzustimmen. Und noch ein Tipp am Rande: Führe alle Tests mit echten Benutzerzahlen durch nicht jetzt 100 Nutzer sondern mit mindestens 10.000 und mehr, dies kostet zwar mehr Rechenzeit aber dafür hast du auch echte Daten.

Du kennst weitere interessante Tools? Ich würde mich freuen, wenn Du sie im Kommentarbereich hier postest.

 

David Hohl

Seit 1995 Entwickler und Projektleiter. Langjährige Erfahrung mit eZ Publish. War von 2012 bis 2014 bei silver.solutions als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Sicherheitsfrage * Time limit is exhausted. Please reload CAPTCHA.