Профилирование рабочих приложений в 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: