Поделиться через


Средства диагностики производительности

Автор: Майк Роусос (Mike Rousos)

В этой статье перечислены средства диагностики проблем с производительностью в ASP.NET Core.

Средства диагностики Visual Studio

Средства профилирования и диагностики , встроенные в Visual Studio, являются хорошим местом для изучения проблем с производительностью. Эти средства являются мощными и удобными для использования из среды разработки Visual Studio. Средство позволяет анализировать использование ЦП, использование памяти и события производительности в приложениях ASP.NET Core. Встроенность облегчает профилирование во время разработки.

Дополнительные сведения см. в документации по Visual Studio.

Application Insights

Application Insights предоставляет подробные данные о производительности приложения. Application Insights автоматически собирает данные о скоростях ответа, частоте сбоев, времени отклика зависимостей и т. д. Application Insights поддерживает ведение журнала пользовательских событий и метрик, относящихся к приложению.

Azure Application Insights предоставляет несколько способов предоставления аналитических сведений о отслеживаемых приложениях:

  • Карта приложений — помогает обнаружить узкие места производительности или горячие точки сбоя во всех компонентах распределенных приложений.

  • Обозреватель метрик Azure — это компонент портала Microsoft Azure, который позволяет отображать диаграммы, визуально сопоставлять тенденции и исследовать пики и спады значений метрик.

  • Панель производительности на портале Application Insights

    • Отображает сведения о производительности для различных операций в отслеживаемом приложении.
    • Позволяет углубиться в одну операцию для проверки всех частей и зависимостей, которые способствуют увеличению длительности.
    • Профилировщик можно вызвать здесь для сбора трассировок производительности по запросу.
  • Azure Application Insights Profiler позволяет регулярно и по запросу профилирование приложений .NET. На портале Azure отображаются зафиксированные трассировки производительности с вызовами функций и горячими путями. Файлы трассировки также можно скачать для более глубокого анализа с помощью PerfView.

Application Insights можно использовать в различных средах:

  • Оптимизировано для работы в Azure.
  • Работает в продакшене, разработке и стейджинге.
  • Работает локально из Visual Studio или в других средах размещения.

Дополнительные сведения о мониторинге на основе кода см. в Application Insights для ASP.NET Core. Дополнительные сведения о мониторинге без кода см. в статье "Мониторинг производительности службы приложений Azure".

PerfView

PerfView — это средство анализа производительности, созданное командой .NET специально для диагностики проблем с производительностью .NET. PerfView позволяет анализировать использование ЦП, поведение памяти и GC, события производительности и время настенных часов.

Дополнительные сведения о PerfView см. в руководстве пользователя, доступном в средстве или на сайте GitHub.

Набор инструментов для оптимизации производительности Windows

Набор средств производительности Windows (WPT) состоит из двух компонентов: средства записи производительности Windows (WPR) и анализатора производительности Windows (WPA). Средства создают подробные профили производительности операционных систем и приложений Windows. WPT имеет более широкие способы визуализации данных, но его сбор данных менее мощный, чем PerfView.

PerfCollect

Хотя PerfView — это полезное средство анализа производительности для сценариев .NET, оно выполняется только в Windows, поэтому его нельзя использовать для сбора трассировок из приложений ASP.NET Core, работающих в средах Linux.

PerfCollect — это скрипт bash, использующий собственные средства профилирования Linux (Perf и LTTng) для сбора трассировок в Linux, которые можно проанализировать с помощью PerfView. PerfCollect является полезным инструментом в средах Linux, когда возникают проблемы с производительностью, и PerfView нельзя использовать напрямую. Вместо этого PerfCollect может собирать трассировки из приложений .NET Core, которые затем анализируются на компьютере Windows с помощью PerfView.

Дополнительные сведения об установке и начале работы с PerfCollect доступны на сайте GitHub.

Другие сторонние средства производительности

Ниже перечислены некоторые сторонние средства производительности, которые полезны в исследовании производительности приложений .NET Core.