Narzędzia i metody monitorowania na żywo ASP.NET aplikacje internetowe?

Myślę, że wielu programistów wie, że nieprzyjemne uczucie, gdy użytkownicy mówią im, że " aplikacja jest powolna (znowu)."

W złożonej aplikacji internetowej może istnieć wiele możliwych przyczyn pogorszenia (postrzeganej) wydajności: powolna odpowiedź bazy danych, problemy z przepustowością, złe buforowanie itp. Z pewnością istnieją problemy, które nigdy nie wystąpią w środowisku deweloperskim lub inscenizacyjnym.

Teraz moje pytanie:

Czy istnieje zestaw narzędzi i / lub metod co zapewni kompleksowy stan "na żywo" w systemie produkcyjnym IIS/ASP.NET/SQL Server w sposób wizualny (nie tylko liczniki wydajności):

  • bieżące żądania HTTP (powiedzmy Ostatnie N minut)
  • wyjątki / timeouty
  • Bandwidth data
  • liczba otwartych połączeń / wywołań baz danych
  • ...

Głównym celem jest, aby zobaczyć na pierwszy rzut oka (lub po przyjrzeniu się bliżej), jaki problem jest przyczyną wydajności problemy.

Author: Kiquenet, 2008-11-03

4 answers

Myślę, że kategoria oprogramowania, którego szukasz to". net profiler "lub".NET tracer". Jednym z takich narzędzi, które można rozważyć jest JetBrains ' dotTrace . Daje ślady stosu uruchomieniowego i tablicę liczników, które wskazują możliwe wąskie gardła.

 6
Author: urig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-03 16:48:40

Wspomniane wcześniej narzędzia z pewnością zadziałają. W naszym sklepie potrzebowaliśmy dokładniejszych informacji i zbudowaliśmy własne rozwiązanie (długa historia: łatwiej było kodować niż kłócić się o narzędzia i dane do pobrania).

Użyłem LogParser do przeglądania dzienników IIS i tworzenia raportów wyjściowych z tych dzienników (np. podziały kodu wyniku itp.).

Użyłem kombinacji liczników wydajności i wartości WMI, aby uzyskać resztę - możesz je odczytać za pomocą dość prostego C# - daje to pełną kontrolę, którą możesz następnie zrzucić .csv itp do przeglądania/przetwarzania w programie excel lub jeśli aktualizujesz stronę jako centrum sterowania.

Pewnie też bym spojrzał na IIS.net jako świetny zasób dla narzędzi IIS, w tym debugowania, zabezpieczeń itp.

 4
Author: MikeJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-03 17:43:47

Posłuchałem Rady uriga i znalazłem to oprogramowanie o nazwie SmartInspect .

Czy ktoś zna to narzędzie do rejestrowania/monitorowania? Wydaje się, że jest to połączenie konsoli czasu rzeczywistego i biblioteki programistów.

 1
Author: splattne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:16:47

CLR 4.5 będzie miał kilka nowych możliwości, które pomogą Ci monitorować ASP.NET wydajność na żywo-bez ponownego uruchamiania aplikacji. Zasadniczo możesz ponownie JIT swój kod, aby uwzględnić w nim niektóre Hooki monitorujące, a następnie sprawdzić czas spędzony w klasach / metodach itp.

Jestem pewien, że dotTrace i inne narzędzia do profilowania wykorzystają to automatycznie, ale warto sprawdzić: C9-Inside Re-JIT with David Broman

 1
Author: Mikko Junnila,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-23 19:34:10