Benchmariking und Überwachen von Webapps mit httperf, munin und gltail

Für unser letztes Projekt war Benchmarking und klare Aussagen über die Auslastung des Servers ein wichtiger Punkt. Daher haben wir uns ein paar Tools herangezogen die uns geholfen haben unsere Webapplikation (visuell) “im Griff” zu behalten.

Benchmarking mit httperf

Httperf ist in erster Linie ein Benchmarking-Tool dass die Durchsatzrate von Requests eines Webservers messen kann. Von httperf wird mit einer fixen Rate diese Requests an den Server geschickt und mit den angekommenen Replies verglichen. Der Output gibt uns Informationen zu der Dauer dieses Tests, der Fehlrate (Anzahl der nicht erhaltenen Replies).

Einen Beispielhaften Output kann man hier einsehen.

Das Ergebnis einer Messung sind:

Sehr interessant dabei ist das Resultat der Reply rate:


Reply rate [replies/s]: min 0.0 avg 4.9 max 10.8 stddev 4.2 (40 samples)

Diese gibt uns eine Auskunft über den Durchschnitt und die Standardabweichung der Antwortzeit. Diese Messungen sind genauer je mehr Stichproben während der ganzen Messung entnommen wurden. Durch die Optimierung des Programmcodes können diese Werte dann demensprechend verbessersert und dadurch eine schnellere Antwortzeit gemessen werden. Mehr Informationen zu httperf sind aus dem Manual zu entnehmen. Weitere Informationen kann man auch im Blogpost von Grig Gheorghiu nachlesen. Wer ein bisschen tiefer in die Materie einsteigen möchte, dem empfehlen wir den Screencast von PeepcodeBenchmarking with httperf

Monitoring mit Munin

Um die Server während der Produktivbetriebs visuell im Blick zu haben empiehlt sich die Benutzung von Munin. Mit Munin ist es möglich die verschiedenen Prozesse/Daten des Servers zu visualisieren. Dazu werden so genannte munin-nodes installiert (die zu überwachenden Server). Diese Nodes werden dann auf dem Munin-Server aggregiert, verarbeitet und Visualisiert.

Munin statistic graphs

Standardmäßig bietet Munin Statistiken zu:

Eine sehr schöne Eigenschaft von Munin ist, dass dieses Tool pluggable ist, d.h. es können verschiedene Skripte eingebunden werden. Wenn man Rails-Applikationen mit Phusion Passenger laufen lässt, stehen auf Github zwei nette Skripte zur Verfügung die man einfach in Munin einbinden kann. Mehr zu Munin-Plugins kann man in diesem Blogpost nachlesen.

Quasi-Echtzeitstatistiken mit glTail

Eine nette Ergänzung zur Überwachung von Webapplikationen ist gltail. Gltail bietet eine (quasi-)Echtzeit Darstellung von log-Files jeder Art. Dies kann natürlich dazu verwendet werden, um z.B. die Apache-Logs, Production-logs, etc. zu visualizieren.

glTail

Comments

One Response to “Benchmariking und Überwachen von Webapps mit httperf, munin und gltail”

  1. Daily Digest for June 16th | Michael Bumann on June 16th, 2009 2:38 pm

    [...] Benchmariking und Überwachen von Webapps mit httperf, munin und gltail — 9:46pm via Google [...]

Leave a Reply