Инструменты и методы для оперативного мониторинга ASP.NET веб-приложения?
-
06-07-2019 - |
Вопрос
Я думаю, многим разработчикам знакомо это неприятное чувство, когда пользователи говорят им это "Приложение работает медленно (снова)".
В сложном веб-приложении могут быть много возможных причин за ухудшение (воспринимаемой) производительности:медленный отклик базы данных, проблемы с пропускной способностью, плохое кэширование и т.д.Безусловно, существуют проблемы, которые никогда не возникнут в среде разработки или промежуточной среде.
Теперь мой вопрос:
Существует ли набор инструментов и / или методов, которые обеспечивали бы всеобъемлющее "текущее" состояние в производственной системе IIS / ASP.NET / SQL Server визуально (не только счетчики производительности):
- Текущие HTTP-запросы (скажем, за последние n минут)
- Исключения / тайм-ауты
- Данные о пропускной способности
- Количество открытых подключений к базе данных / вызовов базы данных
- ...
Основная цель состоит в том, чтобы сразу увидеть (или присмотревшись повнимательнее), какая проблема вызывает проблемы с производительностью.
Решение
Я думаю, что категория программного обеспечения, которое вы ищете, - это ".net profiler" или ".net tracer".Одним из таких инструментов, который вы могли бы рассмотреть, является JetBrains' Точечный след.Это дает вам трассировки стека времени выполнения и массив счетчиков, которые указывают на возможные узкие места.
Другие советы
Ранее упомянутые инструменты, безусловно, будут работать.В нашем магазине нам нужна была более подробная информация, и мы создали наше собственное решение (длинная история:кодировать было проще, чем спорить об инструментах и извлекаемых данных).
Я использовал Анализатор журналов чтобы просмотреть журналы IIS и создать выходные отчеты по этим журналам (напримерразбивки кода результата и т.д.).
Я использовал комбинацию счетчиков производительности и значений WMI, чтобы получить остальное - вы можете прочитать их, используя довольно простой C # - это дает вам полный контроль, который вы можете затем сбросить в файл .csv и т.д. Для просмотра / обработки в Excel или при обновлении страницы в качестве центра управления.
Я бы, вероятно, также посмотрел на IIS.net как отличный ресурс для инструментов IIS, включая отладку, безопасность и т.д.
Я последовал за ним совет урига и нашел это программное обеспечение называется SmartInspect.
Кто-нибудь знает этот инструмент ведения журнала / мониторинга?Похоже, это комбинация консоли реального времени и библиотеки разработчика.
Среда CLR 4.5 получит некоторые новые возможности, которые помогут вам отслеживать ASP.NET производительность в реальном времени - без перезапуска вашего приложения.В принципе, вы можете переделать свой код, чтобы включить в него некоторые перехватчики мониторинга, а затем проверить время, проведенное в классах / методах и т.д.
Я уверен, что dotTrace и другие инструменты профилирования будут использовать это автоматически, но это стоит проверить: C9 - Внутренняя перепевка с Дэвидом Броманом