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.
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
- eZ Publish 4.x
- Apache
- Optional: Xhprof
- Optional: Google Analytics Account oder die Opensource Lösung Piwik
- Optional: Munin
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.
https://blog.silversolutions.de/2012/09/b2b-technologie/performance-messen/https://blog.silversolutions.de/wp-content/uploads/2018/12/tools-tipps_dummy.pnghttps://blog.silversolutions.de/wp-content/uploads/2018/12/tools-tipps_dummy-150x150.pngB2B.technologiePraxis,Tipps & TricksMessen 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...David HohlDavid Hohldho@silversolutions.deEditorDavid Hohl ist seit 1995 Entwickler und Projektleiter und bringt langjährige Erfahrung mit eZ Publish mit. Bei silver.solutions war David 2012 bis 2014 als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich. Er hat das eZ-Publish-Blog ins Leben gerufen.silver.solutions