Инструменты и методы для мониторинга в реальном времени веб-приложений ASP.NET? - PullRequest
20 голосов
/ 03 ноября 2008

Я думаю, что многие разработчики знают это неудобное чувство, когда пользователи говорят им, что «Приложение работает медленно (снова).»

В сложном веб-приложении может быть много возможных причин снижения (воспринимаемой) производительности: медленный отклик базы данных, проблемы с пропускной способностью, плохое кэширование и т. Д. Конечно, есть проблемы, которые никогда не возникнут в среда разработки или постановки.

Теперь мой вопрос:

Существует ли набор инструментов и / или методов, которые обеспечили бы всеобъемлющее "живое" состояние в производственной системе IIS / ASP.NET / SQL Server визуально (не только счетчики производительности) :

  • Текущие HTTP-запросы (скажем, за последние n минут)
  • Исключения / тайм-ауты
  • Пропускная способность данных
  • Количество открытых подключений к базе данных / вызовов к базе данных
  • ...

Основная цель - сразу увидеть (или, посмотрев ближе), какая проблема вызывает проблемы с производительностью.

Ответы [ 4 ]

6 голосов
/ 03 ноября 2008

Я думаю, что категория программного обеспечения, которую вы ищете, это ".net profiler" или ".net tracer". Одним из таких инструментов, который вы могли бы рассмотреть, является JetBrains dotTrace . Он дает вам трассировки стека во время выполнения и массив счетчиков, которые указывают на возможные узкие места.

4 голосов
/ 03 ноября 2008

Ранее упомянутые инструменты, безусловно, будут работать. В нашем магазине мы нуждались в более точной информации и создали собственное решение (длинная история: было проще кодировать, чем спорить об инструментах и ​​извлекаемых данных).

Я использовал LogParser , чтобы пролистывать журналы IIS и создавать выходные отчеты этих журналов (например, разбивка кода результата и т. Д.).

Я использовал комбинацию счетчиков производительности и значений WMI, чтобы получить остальное - вы можете прочитать их, используя довольно простой C # - это дает вам полный контроль, который вы можете затем вывести в .csv и т. Д. Для просмотра / обработки в Excel или, если Вы обновляете страницу как центр управления.

Возможно, я бы также посмотрел на IIS.net как отличный ресурс для инструментов IIS, включая отладку, безопасность и т. Д.

1 голос
/ 23 сентября 2011

CLR 4.5 будет иметь некоторые новые возможности, которые помогут вам отслеживать производительность ASP.NET в реальном времени - без перезапуска вашего приложения. По сути, вы можете повторно JIT-код, чтобы включить в него некоторые контрольные хуки, а затем проверить время, потраченное на классы / методы и т. Д.

Я уверен, что dotTrace и другие инструменты профилирования будут использовать это автоматически, но стоит проверить: C9 - Внутри Re-JIT с Дэвидом Броманом

1 голос
/ 03 ноября 2008

Я последовал совету Урига и нашел это программное обеспечение под названием SmartInspect .

Кто-нибудь знает этот инструмент регистрации / мониторинга? Кажется, это сочетание консоли реального времени и библиотеки разработчика.

...