Jest wielki presentation autorstwa Dana Farino, Chief Systems Architect, MySpace.com, prezentujący internetowe narzędzie do zrzucania stosów, które kataloguje wszystkie wątki uruchomione w danym procesie (co robią, jak długo mają był wykonywany, itp)Narzędzie do zrzutu stosu oparte na sieci Web dla ASP.NET przy użyciu Mdbg?
Ich techniki są również podsumowane na highscalability.com:
- PerfCollector.
Scentralizowane gromadzenie danych dotyczących wydajności za pośrednictwem interfejsu UDP . Bardziej niezawodny niż Windows i pozwala każdemu klientowi połączyć się i zobaczyć statystyki . - Narzędzie do zrzutu stosu oparte na sieci Web.
Można kliknąć prawym przyciskiem myszy serwer powodujący problem i uzyskać zrzut stosu zarządzanych wątków .Net . Używany do RDC do systemu i dołączyć debugger i 1/2 później uzyskać odpowiedź. Powolny, nieusuwalny i żmudny. Nie tylko zrzut stosu daje wiele kontekstu o tym, co robi wątek. Rozwiązywanie problemów jest łatwiejsze, ponieważ użytkownik może zablokować 90 wątków w bazie danych , więc baza danych może być niedostępna. - Web Baza narzędzia do zrzutów sterty.
Zrzuca wszystkie alokacje pamięci w liczbie . Bardzo przydatne dla programistów . Zaoszczędź wiele godzin robiąc to ręką o numerze . • Profiler. Śledzi od początku do końca żądanie i generuje raport . Zobacz adres URL, metody, stan, wszystko, co pomoże Ci zidentyfikować powolne żądanie. Wygląda na to, że zablokowane są luki w zgłoszeniach , wiele wyjątków jest zgłaszanych, wszystko, co może być interesujące. Bardzo lekki ciężar . Działa na jednym pudełku w każdym VIP (grupa 100 serwerów) w produkcji . Próbki 1 wątek co 10 sekund. Zawsze śledzenie w tle w .
Pytanie brzmi: jakie narzędzia są wymagane do zbudowania internetowego narzędzia do zrzucania stosów dla ASP.NET? Dla wygody załóżmy, że * .aspx hostowany w docelowej domenie AppDomain, zdolny do wysyłania wszystkich zarządzanych stosów wywołań w tym procesie, jest wystarczający.
Istnieje kilka stanowisk, które obejmują wykorzystanie Mdbg (debugger dla kodu zarządzanego w całości napisany w języku C#/IL który rozpoczął dostarczane z CLR 2 SDK) oraz zespół mdbgcore zwykle w C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin:
- http://dotnetdebug.net/2005/11/09/exceptiondbg-v01-debug-your-exceptions/
- http://blogs.msdn.com/jmstall/archive/tags/MDbg/default.aspx
- http://blogs.msdn.com/vijaysk/archive/2009/11/04/asp-net-debugger-extension-for-iis-7.aspx
Czy rozwiązanie po prostu odwołuje się do tego zespołu, aby uzyskać pożądany wynik?Jaki wpływ miałaby operacja "wykaz wszystkich zarządzanych stosów wywołań" na działający proces obsługujący ruch produkcyjny?