0251 / 590 837 15

JMeter – Performance Check für WebServer

JMeter - Performance Check

JMeter - Performance Check

Wie bekomme ich meinen Webserver schneller? Diese Frage habe ich mich in den letzten Tagen des öfteren fragen müssen. Bei der Optimierung hat mir ein Tool sehr viel geholfen: JMeter, ein Projekt der Apache Foundation.

Funktionen

Grob gesagt: JMeter misst die Zeit, die benötigt wird um Anfragen an dem Server zu senden. Es unterstützt eine Vielzahl an Anfragen, dazu gehören auch unter HTTP, FTP, SOAP oder auch E-Mail Protokolle. In meinem Beispiel werde ich HTTP-Anfragen messen.

Die Anfragen werden parallel (in Threads) an den Server geschickt. Man kann hierfür einige Einstellungen vornehmen, von denen ich die Wichtigsten erklären werde.

Erste Schritte

JMeter kommt für Windows in einer Zip-Datei. Diese muss einfach nur entpackt werden. Man kann es in zwei Modi starten: Mit und ohne Oberfläche. Der Start ohne Oberflöche ist für das automatisierte Testen gedacht. Wir bleiben aber erst einmal bei der Oberfläche.

Für den Start mit Oberfläche, muss die Datei jmeter.bat im bin-Verzeichnis gestartet werden.

Testplan erstellen

Thread-Gruppe

In der Oberfläche kann man links den Punkt „Testplan“ finden. Dieser beschreibt den Ablauf des Tests. Zunächst einmal müssen wir dort eine neue Thread-Gruppe hinzufügen. Dies geht mit Rechtsklick auf Testplan->Hinzufügen->Threads(Users)->Thread-Gruppe:

Thread-Gruppe

Thread-Gruppe

Erklärung Thread: Normalerweise wird in einer Anwendung ja eine Zeile nach der anderen abgearbeitet. Dies ist in einem Thread natürlich nicht anders. Jedoch besteht die Möglichkeit, den Programmcode zwei mal nebeneinander laufen zu lassen -> Dafür benötigt man entweder Threads oder mehrere Prozesse.

In diesem Formular ist mit Anzahl von Threads gemeint, wie viele Anfragen zum Server parallel abgeschickt werden können. So lässt sich eine Auslastung mit mehreren Nutzern testen. Trage also eine Zahl ein, die produktiv später erreicht werden könnte. Für kleinere Seiten reichen 2-3 Threads zum Testen aus.

Um einen brauchbaren Wert zu bekommen, sollte man seine Anfragen öfters als einmal laufen lassen. In meinen Test nehme ich 500 Wiederholungen.

HTTP Request Default Einstellungen

Es macht meistens Sinn, mehrere verschiedene Anfragen an der Server zu senden. Um nicht jedes Mal alles neu einzustellen, kann man Default-Einstellungen festlegen. Dazu müsst ihr einfach mit Rechtsklick auf die eben erstellte Thread-Gruppe klicken und dort unter Konfigurations-Element die HTTP Request Default Einstellungen hinzufügen.

Http Request Default Einstellungen

Http Request Default Einstellungen

Ich habe hier die Domain und den Port eingetragen.

Sampler hinzufügen

Ein Sampler ist nichts anderes als eine Abfrage. Über die Threadgruppe kann man so auch einen HTTP-Request hinzufügen:

Http Request
Wichtig ist hier für den ersten Test nur das Feld Pfad. Hier muss die zu prüfende Url ohne Domain und Http eingegeben werden. Je nach dem wie umfangreich dein Test sein soll, kannst du natürlich noch mehrere Http-Requests hinzufügen

Test auswerten

Die Auswertung wird über so genannte Listner gesteuert. Diese Überwachen den Test und geben Unterschiedliche Ergebnisanzeigen. Die Listener können auch wieder über Rechtklick hinzugefügt werden.

Am übersichtlichsten finde ich den Listener „Graph“. Er bietet eigentlich alles, was man für das Geschwindigkeit messen braucht. Wer noch etwas genauer testen möchte kann mal den Listener „Ergebnisse“ ausprobieren (siehe Titelbild).

JMeter Ergebnis

JMeter Ergebnis

Optimieren

Jetzt geht es ums Optimieren – Das ist der Punkt an dem ich bei meinem neuen Server zur zeit auch noch bin. Hier sind einige vielleicht hilfreiche Artikel zur Optimierung der Ladezeit: