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

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

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

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

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

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

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

오버헤드 및 샘플링 알고리즘

Profiler는 Profiler가 사용하도록 설정된 애플리케이션을 호스팅하는 각 가상 머신에서 시간당 2분씩 임의로 실행됩니다. Profiler를 실행하는 경우 서버에 5%~15% CPU 오버 헤드를 추가하게 됩니다.

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를 사용할 수도 있습니다.

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

제한 사항

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

다음 단계

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