2009-07-03 16 views
2

Wir möchten, wie lange bestimmte Aktionen in einer ASP.NET MVC-Anwendung ausgeführt werden. Wir verwenden ActionFilters, um bei jedem Aufruf einer Regelaktion einen Timer zu starten und zu stoppen. Das Ergebnis ist eine kleine Datenmenge ein bisschen wie folgt aus:Aufzeichnung von ASP.NET MVC-Leistungsmetriken

{ 
    ContollerName: 'Account', 
    ActionName: 'Index', 
    ExecutionDuration: 287, 
    TimeRecorded: '2009-07-02 17:34:54' 
} 

wir Strahl auf einen Webdienst, diese Daten wollen weg, so dass wir und später analysieren sammeln können. Zum Beispiel könnten wir herausfinden, dass Konto/Index die langsamste Aktion in der Anwendung ist.

Die Sache ist, wenn wir 1.000 Anfragen pro Sekunde bekommen, 1.000 Serviceaufrufe pro Sekunde zu machen, ist nicht sehr schlau; Es wird die Anwendungsleistung beeinträchtigen.

Gibt es eine Möglichkeit, gepufferte Serviceanrufe durchzuführen? Oder gibt es irgendwelche Bibliotheken dafür? Oder ist unsere Architektur falsch?

Gedanken geschätzt.

Antwort

3

Ich verweise normalerweise nicht nur Antworten auf Fragen hier, aber der Typ bei whiletrue.com hat einen wirklich guten Job gemacht MVC hier zu profilieren. Seine Diashow zeigt fast alles, was er getan hat, um es einzurichten.

http://blog.whiletrue.com/2009/04/aspnet-mvc-performance/

+0

Sehr interessante Verbindung, danke! –

+0

Das ist eine tolle Ressource, nette! Es beantwortet meine Frage nicht ganz, denn wir wollen diese Art von Betriebsdaten sammeln, anstatt ab.exe für Benchmarks zu verwenden. – tobinharris

0

Sie könnten einen Controller mit einer Aktion erstellen, die diese vier Werte annehmen kann, und einfach Ihre eigene Site aufrufen und in diesem Controller die Informationen in eine Datenbank einreihen. Dann senden Sie einen anderen Prozess Batch die Informationen an Sie Web-Service.

Verwandte Themen