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:
- Daten über die TCP-Verbindungen
- RequestDaten
- Ergebnisse der empfangenen Replies
- CPU-und Netzdaten
- Auswertung der aufgetretenen Fehler (Timeouts)
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 Peepcode “Benchmarking 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.
Standardmäßig bietet Munin Statistiken zu:
- Filesystem usage (in %)
- MySQL throughput
- MySQL queries
- …
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.
Comments
One Response to “Benchmariking und Überwachen von Webapps mit httperf, munin und gltail”
Leave a Reply




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