성능 진단 도구

Mike Rousos 작성

이 문서에서는 ASP.NET Core의 성능 문제를 진단하기 위한 도구가 나열되어 있습니다.

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 성능 도구 키트)는 WPR(Windows 성능 레코더) 및 WPA(Windows 성능 분석기)의 두 구성 요소로 구성됩니다. 도구는 Windows 운영 체제 및 앱에 대한 심층 성능 프로필을 생성합니다. WPT에는 데이터를 시각화하는 다양한 방법이 있지만 데이터 수집 능력은 PerfView에 비해 떨어집니다.

PerfCollect

PerfView는 .NET 시나리오에 유용한 성능 분석 도구이지만 Windows에서만 실행되므로 Linux 환경에서 실행되는 ASP.NET Core 앱에서 추적을 수집하는 데 사용할 수 없습니다.

PerfCollect는 기본 Linux 프로파일링 도구(PerfLTTng)를 사용하여 PerfView로 분석할 수 있는 Linux에서 추적을 수집하는 bash 스크립트입니다. PerfCollect는 PerfView를 직접 사용할 수 없는 Linux 환경에서 성능 문제가 표시되는 경우에 유용합니다. 대신 PerfCollect는 .NET Core 앱에서 추적을 수집할 수 있습니다. 그러면 PerfView를 사용하여 Windows 컴퓨터에서 분석됩니다.

PerfCollect를 설치하고 시작하는 방법에 대한 자세한 내용은 GitHub에서 확인할 수 있습니다.

다른 타사 성능 도구

다음은 .NET Core 애플리케이션의 성능 조사에 유용한 일부 타사 성능 도구를 나열합니다.