.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를 사용하도록 설정하는 방법을 알아봅니다.