다음을 통해 공유


.NET용 Application Insights Profiler를 사용하여 Azure에서 프로덕션 애플리케이션 프로파일러

특히 동적 클라우드의 프로덕션 환경에서 실행되는 경우 애플리케이션의 성능 문제를 진단하는 것이 어려울 수 있습니다. 애플리케이션의 느린 응답은 파이프라인에서 요청을 처리하는 인프라, 프레임워크 또는 애플리케이션 코드로 인해 발생할 수 있습니다.

.NET용 Application Insights Profiler를 사용하면 시나리오에 관계없이 Azure에서 실행되는 애플리케이션에 대한 성능 추적을 캡처, 식별 및 볼 수 있습니다. .NET Profiler 추적 프로세스는 대규모로 자동으로 수행되며 사용자에게 부정적인 영향을 주지 않습니다. .NET Profiler는 다음을 식별합니다.

  • 고객이 작성한 각 웹 요청에 대한 중앙값, 가장 빠른 응답 시간 및 가장 느린 응답 시간입니다.
  • 특정 웹 요청을 처리하는 데 가장 많은 시간을 소비하는 "핫" 코드 경로입니다.

모든 Azure 애플리케이션에서 .NET용 Profiler를 사용하도록 설정하여 다음 트리거를 사용하여 데이터를 수집합니다.

  • 샘플링 트리거: 약 2분 동안 한 시간에 한 번씩 Profiler를 임의로 시작합니다.
  • CPU 트리거: CPU 사용량 비율이 80%를 초과하면 Profiler를 시작합니다.
  • 메모리 트리거: 메모리 사용량이 80%를 초과하면 Profiler를 시작합니다.

이러한 각 트리거는 구성, 사용 또는 사용 안 함으로 설정될 수 있습니다.

샘플링 속도 및 오버헤드

기본적으로 Profiler는 30초 동안 또는 CPU 또는 메모리 사용량이 많은 기간 동안 30초 동안 매시간 추적을 적극적으로 수집합니다. 시간별 추적(샘플링이라고 함)은 사전 튜닝에 적합하며 높은 CPU 및 메모리 추적(트리거라고 함)은 사후 문제 해결에 유용합니다.

참고 항목

.NET용 Application Insights Profiler가 적극적으로 실행되고 추적을 수집하는 경우 일반적으로 CPU 및 메모리 오버헤드의 5%에서 15% 사이를 서버에 추가합니다.

.NET Profiler에서 캡처한 데이터를 저장하는 데 추가 비용은 없습니다. 데이터는 15일 후에 자동으로 삭제됩니다.

.NET Profiler에서 지원됨

Profiler는 다음과 같은 Azure 서비스에 배포된 .NET 애플리케이션에서 작동합니다. 다음 링크에서 각 서비스 형식에 대한 Profiler 사용 설정에 대한 구체적인 지침을 확인합니다.

컴퓨팅 플랫폼 .NET (>= 4.6) .NET Core
Azure App Service
Windows용 Azure Virtual Machines 및 Virtual Machine Scale Sets
Linux용 Azure Virtual Machines 및 Virtual Machine Scale Sets
Azure Cloud Services
Windows용 Azure Container Instances
Linux용 Azure Container Instances
Kubernetes
Azure Functions
Azure Service Fabric

참고 항목

현재 미리 보기 상태인 Azure Monitor Application Insights용 Java Profiler를 사용할 수도 있습니다.

.NET용 Profiler를 사용하도록 설정했지만 추적이 표시되지 않는 경우 문제 해결 가이드참조하세요.

제한 사항

  • 데이터 보관: 기본 데이터 보존 기간은 5일입니다.
  • 웹앱 프로파일링:
    • 추가 비용 없이 .NET Profiler를 사용할 수 있지만 웹앱은 최소한 Azure 앱 Service의 Web Apps 기능의 기본 계층에서 호스트되어야 합니다.
    • 각 웹앱에는 하나의 프로파일러만 연결할 수 있습니다.
    • Linux의 .NET Profiler는 Windows 기반 웹앱에서만 지원됩니다.

다음 단계

Azure 서비스에서 .NET Profiler를 사용하도록 설정하는 방법을 알아봅니다.