Профилирование рабочих приложений в Azure с помощью Application Insights Profiler для .NET

Диагностика проблем с производительностью приложения может быть сложной задачей, особенно при запуске в рабочей среде в динамическом облаке. Медленные отклики в приложении могут быть вызваны инфраструктурой, платформой или кодом приложения, обрабатывающим запрос в конвейере.

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

  • Срединное, минимальное и максимальное время отклика для каждого веб-запроса, поступившего от пользователей.
  • Путь к коду "горячий" тратит больше всего времени на обработку определенного веб-запроса.

Включите Профилировщик для .NET во всех приложениях Azure для сбора данных со следующими триггерами:

  • Триггер выборки: запускает профилировщик случайным образом примерно один раз в час в течение двух минут.
  • Триггер ЦП: запускает профилировщик, если процент использования ЦП превышает 80 процентов.
  • Триггер памяти: запускает профилировщик, если использование памяти превышает 80 процентов.

Каждый из этих триггеров можно настроить, включить или отключить.

Скорость выборки и затраты

По умолчанию Profiler активно собирает трассировки каждые 30 секунд или в периоды высокой загрузки ЦП или памяти в течение 30 секунд. Почасовые трассировки (называемые выборкой) отлично подходят для упреждающей настройки, а трассировки ЦП и памяти (называемые триггерами) полезны для реактивного устранения неполадок.

Примечание.

При активном запуске и сборе трассировок профилировщик обычно добавляется от 5% до 15% ресурсов ЦП и памяти на сервер.

Нет дополнительных затрат на хранение данных, захваченных Профилировщиком. Данные автоматически удаляются через 15 дней.

Поддерживается в профилировщике .NET

Profiler работает с приложениями .Net, развернутыми на следующие службах Azure. Просмотрите конкретные инструкции по включению Профилировщика для каждого типа службы в следующих ссылках.

Вычислительная платформа .NET (>= 4.6) .NET Core
Служба приложений Azure Да Да
Azure Виртуальные машины и Масштабируемые наборы виртуальных машин для Windows Да Да
Azure Виртуальные машины и Масштабируемые наборы виртуальных машин для Linux No Да
Oблачныe службы Azure2 Да Да
Экземпляры контейнеров Azure для Windows No Да
Экземпляры контейнеров Azure для Linux No Да
Kubernetes No Да
Функции Azure Да Да
Azure Service Fabric Да Да

Примечание.

Вы также можете использовать Java Profiler для Azure Monitor Application Insights, в настоящее время в предварительной версии.

Если вы включили профилировщик для .NET, но не видите трассировки, см . руководство по устранению неполадок.

Ограничения

  • Хранение данных: срок хранения данных по умолчанию составляет пять дней.
  • Профилирование веб-приложений:
    • Хотя вы можете использовать .NET Profiler без дополнительных затрат, веб-приложение должно размещаться на базовом уровне функции веб-приложения службы приложение Azure, как минимум.
    • Вы можете присоединить только один профилировщик к каждому веб-приложению.
    • Профилировщик .NET в Linux поддерживается только в веб-приложениях под управлением Windows.

Следующие шаги

Узнайте, как включить .NET Profiler в службе Azure: