Mike Rousos 작성
이 문서에서는 ASP.NET Core의 성능 문제를 진단하기 위한 도구를 나열합니다.
성능 진단 도구 및 카운터에 대한 Blazor WebAssembly 자세한 내용은 ASP.NET Core Blazor WebAssembly 브라우저 개발자 도구 진단 및 ASP.NET Core Blazor WebAssembly 이벤트 파이프 진단을 참조하세요.
Visual Studio 진단 도구
Visual Studio에 기본 제공되는 프로파일링 및 진단 도구 는 성능 문제를 조사하기에 좋은 장소입니다. 이러한 도구는 Visual Studio 개발 환경에서 사용하기에 강력하고 편리합니다. 이 도구를 사용하면 ASP.NET Core 앱에서 CPU 사용량, 메모리 사용량 및 성능 이벤트를 분석할 수 있습니다. 기본 제공을 통해 개발 시 프로파일링을 쉽게 수행할 수 있습니다.
자세한 내용은 Visual Studio 설명서에서 확인할 수 있습니다.
Application Insights
Application Insights는 앱에 대한 심층적인 성능 데이터를 제공합니다. Application Insights는 응답 속도, 실패율, 종속성 응답 시간 등에 대한 데이터를 자동으로 수집합니다. Application Insights는 앱과 관련된 사용자 지정 이벤트 및 메트릭 로깅을 지원합니다.
Azure Application Insights는 모니터링되는 앱에 대한 인사이트를 제공하는 여러 가지 방법을 제공합니다.
애플리케이션 맵 – 분산 앱의 모든 구성 요소에서 성능 병목 현상 또는 실패 핫스폿을 발견할 수 있습니다.
Azure 메트릭 탐색기는 Microsoft Azure Portal의 구성 요소로, 차트를 그리고, 추세를 시각적으로 상호 연관시키고, 메트릭 값의 급증 및 하락을 조사할 수 있습니다.
Application Insights 포털의 성능 탭:
- 모니터링되는 앱에서 다양한 작업에 대한 성능 세부 정보를 표시합니다.
- 단일 작업으로 드릴다운하여 긴 기간에 영향을 주는 모든 부품/종속성을 확인할 수 있습니다.
- 여기에서 프로파일러를 호출하여 주문형 성능 추적을 수집할 수 있습니다.
Azure Application Insights Profiler 는 .NET 앱의 일반 및 주문형 프로파일링을 허용합니다. Azure Portal은 호출 스택 및 핫 경로를 사용하여 캡처된 성능 추적을 보여줍니다. PerfView를 사용하여 심층 분석을 위해 추적 파일을 다운로드할 수도 있습니다.
Application Insights는 다음과 같은 다양한 환경에서 사용할 수 있습니다.
- Azure에서 작동하도록 최적화되었습니다.
- 프로덕션, 개발 및 스테이징에서 작동합니다.
- Visual Studio 또는 다른 호스팅 환경에서 로컬로 작동합니다.
코드 기반 모니터링에 대한 자세한 내용은 ASP.NET Core용 Application Insights를 참조하세요. 코드리스 모니터링에 대한 자세한 내용은 Azure App Service 성능 모니터링을 참조하세요.
PerfView
PerfView 는 .NET 성능 문제를 진단하기 위해 특별히 .NET 팀에서 만든 성능 분석 도구입니다. PerfView를 사용하면 CPU 사용량, 메모리 및 GC 동작, 성능 이벤트 및 벽시계 시간을 분석할 수 있습니다.
PerfView에 대한 자세한 내용은 도구 또는 GitHub에서 사용할 수 있는 사용자 가이드를 참조하세요.
Windows 성능 도구 키트
WPT(Windows Performance Toolkit)는 WPR(Windows Performance Recorder) 및 WPA(Windows Performance Analyzer)의 두 가지 구성 요소로 구성됩니다. 이 도구는 Windows 운영 체제 및 앱의 심층적인 성능 프로필을 생성합니다. WPT에는 데이터를 시각화하는 다양한 방법이 있지만 해당 데이터 수집은 PerfView보다 덜 강력합니다.
PerfCollect
PerfView는 .NET 시나리오에 유용한 성능 분석 도구이지만 Windows에서만 실행되므로 Linux 환경에서 실행되는 ASP.NET Core 앱에서 추적을 수집하는 데 사용할 수 없습니다.
PerfCollect는 네이티브 Linux 프로파일링 도구(Perf 및 LTTng)를 사용하여 PerfView에서 분석할 수 있는 Linux에서 추적을 수집하는 bash 스크립트입니다. PerfCollect는 성능 문제가 PerfView를 직접 사용할 수 없는 Linux 환경에 표시되는 경우에 유용합니다. 대신 PerfCollect는 PerfView를 사용하여 Windows 컴퓨터에서 분석되는 .NET 앱에서 추적을 수집할 수 있습니다.
PerfCollect를 설치하고 시작하는 방법에 대한 자세한 내용은 GitHub에서 확인할 수 있습니다.
기타 타사 성능 도구
다음은 .NET 애플리케이션의 성능 조사에 유용한 몇 가지 타사 성능 도구를 나열합니다.
- MiniProfiler
- JetBrains의 dotTrace 및 dotMemory
- Intel의 VTune
ASP.NET Core