2008-09-17 5 views
7

Ich habe nach Möglichkeiten gesucht, wie Leute ihre Apps testen, um zu entscheiden, wo Caching zu machen ist oder etwas zusätzlichen Engineering-Aufwand anzuwenden, und bis jetzt waren httperf und ein einfaches Sesslog ziemlich hilfreich.Wie machen Sie Leistungstests in Ruby-Webapps?

Welche Tools und Tricks haben Sie auf Ihre Projekte angewendet?

Antwort

9

Ich verwende httperf für eine hohe Sicht der Leistung.

In Rails ist ein Leistungsskript integriert, das das Ruby-Prof-Juwel verwendet, um Aufrufe tief im Rails-Stack zu analysieren. Es gibt eine erstaunliche Railscast auf Request Profiling mit dieser Technik.

NewRelic haben einige wirklich coole Analyse-Tools, die fast Echtzeitdaten geben. Sie haben es nur eine "Lite" Version kostenlos zur Verfügung gestellt.

2

Ich benutze jmeter für Session-basierte Tests - es ermöglicht sehr fein abgestimmte Kontrolle über Seiten, die Sie treffen möchten, Parameter zu injizieren, Schleifen zu durchlaufen, etc. Es ist großartig für die Simulation, wie viele echte Benutzer Ihre Website verarbeiten kann , anstatt nur eine Reihe von statischen URLs zu testen. Sie können Tests einfach über mehrere Rechner verteilen, indem Sie den jmeter-Server auf Computern mit öffentlich zugänglichen IPs laden. Ich habe einige Einschränkungen in der Anzahl der Benutzer/Threads gefunden, die ein Rechner auf einmal auf einen Server werfen kann (das hängt vom Test ab), aber jmeter hat meinem Team geholfen, unsere Apps-Kapazität für Benutzer auf das Sechsfache zu verbessern.

Es hat keine fancy graphing - ich verwende meine eigene In-House-Grafik mit ruppy, die Performance-Analyse auf Anfrage für bestimmte Seiten und Aktionen durchführen kann.

1

Ich evaluiere eine neue Opensource Webseite Instrumentierung und Messung Suite namens Jiffy. Es ist nicht speziell für Ruby, es funktioniert für alle Arten von Webapps

Es gibt auch eine Jiffy Firebug Extension zum Rendern der Metriken im Browser.

1

Ich schlage auch vor, Sie betrachten Browser Mob für Belastungstests.