성능 진단(PerfInsights) CLI 도구를 사용하여 Windows 가상 머신 성능 문제 해결

적용 대상: ✔️ Windows VM

성능 진단(PerfInsights) 확장은 진단 데이터를 수집 및 분석하고 Azure에서 Windows VM(가상 머신) 성능 문제를 해결하는 데 도움이 되는 보고서를 제공하는 자가 진단 도구입니다. 성능 진단을 사용하여 다음 두 가지 모드 중 하나에서 성능 문제를 식별하고 해결합니다.

  • 연속 진단(미리 보기) 은 5초 간격으로 데이터를 수집하고 5분마다 높은 리소스 사용량에 대한 실행 가능한 인사이트를 보고합니다.
  • 주문형 진단을 사용하면 한 번에 수집된 데이터를 기반으로 보다 심층적인 데이터, 인사이트 및 권장 사항으로 진행 중인 성능 문제를 해결할 수 있습니다.

이 문서에서는 Windows VM에 성능 진단 확장을 다운로드하고 CLI 도구를 사용하여 도구를 실행하는 방법을 설명합니다. 포털에서 성능 진단을 실행하고 ARM 템플릿 또는 PowerShell을 사용하여 성능 진단 확장을 배포할 수도 있습니다.

가상 머신에 성능 문제가 발생하는 경우 지원에 문의하기 전에 성능 진단을 실행합니다.

지원되는 문제 해결 시나리오

성능 진단을 사용하여 다양한 시나리오 문제를 해결할 수 있습니다. 다음 섹션에서는 연속 및 주문형 성능 진단을 사용하여 성능 문제를 식별하고 해결하는 일반적인 시나리오를 설명합니다. 연속 및 주문형 성능 진단을 비교하려면 성능 진단 인사이트 및 보고서를 참조 하세요.

참고 항목

Azure 가상 머신 확장 집합에서 PerfInsights를 사용하는 방법에 대한 자세한 내용은 PerfInsights 및 확장 집합 VM 인스턴스를 참조 하세요.

연속 진단

연속 성능 진단을 사용하면 VM을 정기적으로 모니터링하여 다음을 위해 높은 리소스 사용량을 식별할 수 있습니다.

  • 높은 CPU 사용량: 높은 CPU 사용 기간을 검색하고 해당 기간 동안 상위 CPU 사용량 소비자를 표시합니다.
  • 높은 메모리 사용량: 높은 메모리 사용 기간을 검색하고 해당 기간 동안 상위 메모리 사용량 소비자를 표시합니다.
  • 높은 디스크 사용량: 실제 디스크에서 높은 디스크 사용 기간을 검색하고 해당 기간 동안 상위 디스크 사용 소비자를 표시합니다.

주문형 진단

빠른 분석

이 시나리오에서는 디스크 구성 및 다음을 비롯한 기타 중요한 정보를 수집합니다.

  • 이벤트 로그

  • 모든 들어오고 나가는 연결에 대한 네트워크 상태

  • 네트워크 및 방화벽 구성 설정

  • 시스템에서 현재 실행 중인 모든 애플리케이션에 대한 작업 목록

  • Microsoft SQL Server 데이터베이스 구성 설정(VM이 SQL Server를 실행하는 서버로 식별된 경우)

  • 스토리지 안정성 카운터

  • 중요한 Windows 핫픽스

  • 설치된 필터 드라이버

시스템에 영향을 주지 않아야 하는 정보의 수동 컬렉션입니다.

참고 항목

이 시나리오는 다음 각 시나리오에 자동으로 포함됩니다.

벤치마킹

이 시나리오에서는 VM에 연결된 모든 드라이브에 대해 Diskspd 벤치마크 테스트(IOPS 및 MBPS)를 실행합니다.

참고 항목

이 시나리오는 시스템에 영향을 줄 수 있으며 라이브 프로덕션 시스템에서 실행해서는 안 됩니다. 필요한 경우 문제가 발생하지 않도록 전용 유지 관리 창에서 이 시나리오를 실행합니다. 추적 또는 벤치마크 테스트로 인해 워크로드가 증가하면 VM의 성능에 부정적인 영향을 줄 수 있습니다.

성능 분석

이 시나리오에서는 RuleEngineConfig.json 파일에 지정된 카운터를 사용하여 성능 카운터 추적을 실행합니다. VM이 SQL Server를 실행하는 서버로 식별되면 성능 카운터 추적을 실행합니다. RuleEngineConfig.json 파일에 있는 카운터를 사용하여 이 작업을 수행합니다. 이 시나리오에는 성능 진단 데이터도 포함됩니다.

Azure Files 분석

이 시나리오에서는 네트워크 추적과 함께 특수 성능 카운터 캡처를 실행합니다. 캡처에는 모든 SMB(Server Message Block) 클라이언트 공유 카운터가 포함됩니다. 다음은 캡처의 일부인 몇 가지 주요 SMB 클라이언트 공유 성능 카운터입니다.

Type SMB 클라이언트 공유 카운터
IOPS Data Requests/sec
읽기 요청 수/초
Write Requests/sec
대기 시간 평균 초/데이터 요청
평균 초/읽기
평균 초/쓰기
IO 크기 평균 바이트/데이터 요청
평균 바이트/읽기
평균 바이트/쓰기
처리량 Data Bytes/sec
Read Bytes/sec
Write Bytes/sec
큐 길이 평균 읽기 큐 길이
평균 쓰기 큐 길이
평균 데이터 큐 길이

고급 성능 분석

고급 성능 분석을 실행할 때는 병렬로 실행되도록 추적을 선택합니다. 원하는 경우 모두 실행할 수 있습니다(성능 카운터, Xperf, 네트워크 및 StorPort).

참고 항목

이 시나리오는 시스템에 영향을 줄 수 있으며 라이브 프로덕션 시스템에서 실행해서는 안 됩니다. 필요한 경우 문제가 발생하지 않도록 전용 유지 관리 창에서 이 시나리오를 실행합니다. 추적 또는 벤치마크 테스트로 인해 워크로드가 증가하면 VM의 성능에 부정적인 영향을 줄 수 있습니다.

성능 진단은 Windows에서 어떤 정보를 수집하나요?

Windows VM, 디스크 또는 스토리지 풀 구성, 성능 카운터, 로그 및 다양한 추적에 대한 정보가 수집됩니다. 사용 중인 성능 시나리오에 따라 달라집니다. 다음 표에서 자세한 내용을 제공합니다.

수집되는 데이터 빠른 성능 분석 벤치마킹 성능 분석 Azure Files 분석 고급 성능 분석
이벤트 로그의 정보
시스템 정보
볼륨 맵
디스크 맵
실행 중인 작업
스토리지 안정성 카운터
스토리지 정보
Fsutil 출력
드라이버 정보 필터링
Netstat 출력
네트워크 구성
방화벽 구성
SQL Server 구성
성능 진단 추적 *
성능 카운터 추적 **
SMB 카운터 추적 **
SQL Server 카운터 추적 **
Xperf 추적
StorPort 추적
네트워크 추적
Diskspd 벤치마크 추적 ***

성능 진단 추적 (*)

백그라운드에서 규칙 기반 엔진을 실행하여 데이터를 수집하고 지속적인 성능 문제를 진단합니다. 범주 -> 찾기 탭 아래의 보고서에 규칙이 표시됩니다.

각 규칙은 다음 항목으로 구성됩니다.

  • 찾기: 찾기에 대한 설명입니다.
  • 권장 사항: 검색을 위해 수행할 수 있는 작업에 대한 권장 사항입니다. 찾기 및/또는 권장 사항에 대한 자세한 정보를 포함하는 설명서에 대한 참조 링크도 있습니다.
  • 영향 수준: 성능에 영향을 미칠 가능성을 나타냅니다.

현재 지원되는 규칙 범주는 다음과 같습니다.

  • 높은 리소스 사용량:
    • 높은 CPU 사용량: 높은 CPU 사용 기간을 검색하고 해당 기간 동안 상위 CPU 사용량 소비자를 표시합니다.
    • 높은 메모리 사용량: 높은 메모리 사용 기간을 검색하고 해당 기간 동안 상위 메모리 사용량 소비자를 표시합니다.
    • 높은 디스크 사용량: 실제 디스크에서 높은 디스크 사용 기간을 검색하고 해당 기간 동안 상위 디스크 사용 소비자를 표시합니다.
    • 고해상도 디스크 사용: 각 실제 디스크에 대해 50밀리초당 IOPS, 처리량 및 I/O 대기 시간 메트릭을 표시합니다. 디스크 제한 기간을 빠르게 식별하는 데 유용합니다.
  • 기술 자료: 특정 KB(기술 자료) 문서가 설치되어 있지 않은지 검색합니다.
  • 디스크: 특정 디스크 구성 설정을 검색합니다.
  • SQL: 특정 SQL 설정을 검색합니다.
  • 네트워크: 특정 네트워크 설정을 검색합니다.
  • 서버 클러스터: 특정 서버 클러스터 구성 설정을 검색합니다.
  • 시스템: 특정 시스템 구성 설정을 검색합니다.
  • CLR: 관리되는 프로세스에서 긴 가비지 수집 일시 중지를 검색합니다.

참고 항목

현재 .NET Framework 4.5 이상 버전을 포함하는 Windows 버전이 지원됩니다.

성능 카운터 추적(**)

다음 성능 카운터를 수집합니다.

  • \System, \Process, \Processor, \Memory, \Thread, \PhysicalDisk 및 \LogicalDisk
  • \Cache\Dirty Pages, \Cache\Lazy Write Flushes/sec, \Server\Pool Nonpaged, Failures 및 \Server\Pool Paged Failures
  • \Network Interface, \IPv4\Datagrams, \IPv6\Datagrams, \TCPv4\Segments, \TCPv6\Segments, \Network Adapter, \WFPv4\Packets, \WFPv6\Packets, \UDPv4\Datagrams, \UDPv6\Datagrams, \TCPv4\Connection, \TCPv6\Connection, \Network QoS Policy\Packets, \Per Processor Network Interface Card Activity 및 \Microsoft Winsock BSP에서 카운터를 선택합니다.

SQL Server 인스턴스의 경우

  • \SQL Server:Buffer Manager, \SQLServer:Resource Pool Stats 및 \SQLServer:SQL Statistics\
  • \SQLServer:Locks, \SQLServer:General, Statistics
  • \SQLServer:Access 메서드

Azure Files의 경우

\SMB 클라이언트 공유

Diskspd 벤치마크 추적 (***)

Diskspd I/O 워크로드 테스트(OS 디스크 [쓰기] 및 풀 드라이브 [읽기/쓰기])

CLI 도구를 사용하여 VM에서 성능 진단 실행

도구를 실행하기 전에 알고 있어야 하는 사항

도구 요구 사항:

  • 이 도구는 성능 문제가 있는 VM에서 실행해야 합니다.

  • 지원되는 운영 체제는 다음과 같습니다.

    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 R2
    • Windows Server 2012
    • Windows 11
    • Windows 10

SQL Server 액세스

VM에 SQL Server 인스턴스가 설치된 경우 PerfInsights는 계정 NT AUTHORITY\SYSTEM을 사용하여 SQL Server 인스턴스에 액세스하여 구성 정보를 수집하고 규칙을 실행합니다. 계정 NT AUTHORITY\SYSTEM에는 각 인스턴스에 대한 서버 상태 보기 권한 및 연결 SQL 권한이 부여되어야 합니다. 그렇지 않으면 PerfInsights는 SQL Server에 연결할 수 없으며 PerfInsights 보고서에는 SQL Server 관련 정보가 표시되지 않습니다.

프로덕션 VM에서 도구를 실행할 때 발생할 수 있는 문제

  • Xperf 또는 Diskspd를 사용하도록 구성된 벤치마킹 시나리오 또는 "고급 성능 분석" 시나리오의 경우 이 도구는 VM의 성능에 부정적인 영향을 줄 수 있습니다. 이러한 시나리오는 라이브 프로덕션 환경에서 실행해서는 안 됩니다.

  • Diskspd를 사용하도록 구성된 벤치마킹 시나리오 또는 "고급 성능 분석" 시나리오의 경우 다른 백그라운드 작업이 I/O 워크로드를 방해하지 않도록 합니다.

  • 기본적으로 이 도구는 임시 스토리지 드라이브를 사용하여 데이터를 수집합니다. 추적이 더 오랫동안 사용하도록 설정된 상태로 유지되는 경우 수집되는 데이터의 양이 관련될 수 있습니다. 이렇게 하면 임시 디스크의 공간 가용성이 줄어들 수 있으므로 이 드라이브에 의존하는 모든 애플리케이션에 영향을 줄 수 있습니다.

PerfInsights를 실행할 어떻게 할까요? 있나요?

Azure Performance Diagnostics VM 확장을 설치하여 가상 머신에서 PerfInsights를 실행할 수 있습니다. 독립 실행형 도구로 실행할 수도 있습니다.

Azure Portal에서 PerfInsights 설치 및 실행

이 옵션에 대한 자세한 내용은 Azure Performance Diagnostics VM 확장 설치를 참조하세요.

독립 실행형 모드에서 PerfInsights 실행

PerfInsights 도구를 실행하려면 다음 단계를 수행합니다.

  1. PerfInsights.zip 다운로드합니다.

  2. PerfInsights.zip 파일의 차단을 해제합니다. 이렇게 하려면 PerfInsights.zip 파일을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 일반 탭에서 차단 해제를 선택한 다음 확인을 선택합니다. 이 작업을 수행하면 다른 보안 프롬프트 없이 도구가 실행됩니다.

    차단 해제가 강조 표시된 PerfInsights 속성의 스크린샷

  3. 압축된 PerfInsights.zip 파일을 임시 드라이브(보통은 기본적으로 D 드라이브)로 확장합니다.

  4. 관리자 권한으로 Windows 명령 프롬프트를 연 다음 PerfInsights.exe 실행하여 사용 가능한 명령줄 매개 변수를 봅니다.

    cd <the path of PerfInsights folder>
    PerfInsights
    

    PerfInsights 명령줄 출력의 스크린샷.

    PerfInsights 시나리오를 실행하기 위한 기본 구문은 다음과 같습니다.

    PerfInsights /run <ScenarioName> [AdditionalOptions]
    

    /list 명령을 사용하여 사용 가능한 모든 시나리오 및 옵션을 조회합니다.

    PerfInsights /list
    

    다음은 CLI 도구를 사용하여 다양한 문제 해결 시나리오를 실행하는 방법의 예입니다.

    • 연속 성능 진단을 실행합니다.

      PerfInsights /run always on /sau 
      

      지속적인 성능 진단을 중지하려면 Ctrl+C를 누르거나 터미널을 닫습니다.

    • 5분 동안 성능 분석 시나리오를 실행합니다.

      PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics
      
    • Xperf 및 성능 카운터 추적을 사용하여 5분 동안 고급 시나리오를 실행합니다.

      PerfInsights /run advanced xp /d 300 /AcceptDisclaimerAndShareDiagnostics
      
    • 벤치마크 시나리오를 5분 동안 실행합니다.

      PerfInsights /run benchmark /d 300 /AcceptDisclaimerAndShareDiagnostics
      
    • 5분 동안 성능 분석 시나리오를 실행하고 결과 zip 파일을 스토리지 계정에 업로드합니다.

      PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics /sa <StorageAccountName> /sk <StorageAccountKey>
      

    참고 항목

    시나리오를 실행하기 전에 PerfInsights는 사용자에게 진단 정보를 공유하고 EULA에 동의하는 데 동의하라는 메시지를 표시합니다. 이러한 프롬프트를 건너뛰려면 /AcceptDisclaimerAndShareDiagnostics 옵션을 사용합니다.

    Microsoft에 대한 활성 지원 티켓이 있고, 함께 작업 중인 지원 엔지니어의 요청에 따라 실행 중인 PerfInsights가 있으면 /sr 옵션을 사용하여 지원 티켓 번호를 제공해야 합니다.

    기본적으로 PerfInsights는 사용 가능한 경우 최신 버전으로 자체 업데이트를 시도합니다. 자동 업데이트를 건너뛰려면 /SkipAutoUpdate 또는 /sau 매개 변수를 사용합니다.

    기간 스위치 /d 를 지정하지 않으면 PerfInsights는 vmslow, azurefiles 및 고급 시나리오를 실행하는 동안 문제를 재현하라는 메시지를 표시합니다.

추적 또는 작업이 완료되면 PerfInsights와 동일한 폴더에 새 파일이 나타납니다. 파일 이름이 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip. 분석을 위해 이 파일을 지원 에이전트로 보내거나 zip 파일 내에서 보고서를 열어 결과 및 권장 사항을 검토할 수 있습니다.

진단 보고서 검토

PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip 파일 내에서 PerfInsights의 결과를 자세히 알아보는 HTML 보고서를 찾을 수 있습니다. 보고서를 검토하려면 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip 파일을 확장다음 PerfInsights Report.html 파일을 엽니다.

검색 결과 탭을 선택합니다.

PerfInsights 보고서의 개요 탭 아래의 결과 탭 스크린샷

PerfInsights 보고서의 스토리지 탭 아래의 결과 탭 스크린샷.

참고 항목

높음으로 분류된 검색 결과는 성능 문제를 일으킬 수 있는 알려진 문제입니다. 매체로 분류된 결과는 반드시 성능 문제를 일으키지 않는 최적이 아닌 구성을 나타냅니다. 낮음으로 분류되는 검색 결과는 정보만 제공합니다.

모든 상위 및 중간 결과에 대한 권장 사항 및 링크를 검토합니다. 성능에 영향을 줄 수 있는 방법과 성능 최적화 구성에 대한 모범 사례에 대해 알아봅니다.

스토리지 탭

결과 섹션에는 스토리지와 관련된 다양한 결과 및 권장 사항이 표시됩니다.

디스크 맵볼륨 맵 섹션에서는 논리 볼륨과 실제 디스크가 서로 어떻게 관련되어 있는지 설명합니다.

실제 디스크 관점(디스크 맵)에서 테이블은 디스크에서 실행 중인 모든 논리 볼륨을 표시합니다. 다음 예제 에서 PhysicalDrive2 는 여러 파티션(J 및 H)에서 만든 두 개의 논리 볼륨을 실행합니다.

PerfInsights 보고서의 결과 탭 아래에 있는 디스크 맵 섹션의 스크린샷.

볼륨 큐브 뷰(볼륨 맵)에서 테이블은 각 논리 볼륨 아래에 모든 실제 디스크를 표시합니다. RAID/동적 디스크의 경우 여러 실제 디스크에서 논리 볼륨을 실행할 수 있습니다. 다음 예제에서 C:\mount은 실제 디스크 2 및 3에서 SpannedDisk구성된 탑재 지점입니다.

PerfInsights 보고서의 결과 탭 아래에 있는 볼륨 맵 섹션의 스크린샷.

SQL 탭

대상 VM이 SQL Server 인스턴스를 호스트하는 경우 보고서에 SQL이라는 다른 탭이 표시됩니다.

SQL 탭 및 하위 탭의 스크린샷.

이 섹션에는 VM에서 호스트되는 각 SQL Server 인스턴스에 대한 결과 탭 및 추가 탭이 포함되어 있습니다.

검색 결과 탭에는 권장 사항과 함께 확인할 수 있는 모든 SQL 관련 성능 문제의 목록이 포함됩니다.

다음 예에서는 PhysicalDrive0(C 드라이브 실행)이 표시됩니다. modeldev 및 modellog 파일은 모두 C 드라이브에 있으며 서로 다른 형식(예: 데이터 파일 및 트랜잭션 로그)이기 때문입니다.

modeldev 및 modellog 파일 정보의 스크린샷

SQL Server의 특정 인스턴스에 대한 탭에는 선택한 인스턴스에 대한 기본 정보를 표시하는 일반 섹션이 포함되어 있습니다. 탭에는 설정, 구성 및 사용자 옵션을 포함하여 고급 정보에 대한 추가 섹션도 포함되어 있습니다.

진단 탭

진단 탭에는 성능 진단 실행 중에 컴퓨터의 상위 CPU, 디스크 및 메모리 소비자에 대한 정보가 포함되어 있습니다. 시스템이 누락될 수 있는 중요한 패치, 작업 목록 및 중요한 시스템 이벤트에 대한 정보를 찾을 수도 있습니다.

사용되는 외부 도구에 대한 참조

Diskspd

Diskspd는 Microsoft에서 제공하는 스토리지 로드 생성기 및 성능 테스트 도구입니다. 자세한 내용은 Diskspd를 참조하세요.

XPerf

Xperf는 Windows 성능 도구 키트에서 추적을 캡처하는 명령줄 도구입니다. 자세한 내용은 Windows 성능 도구 키트 – Xperf를 참조하세요.

다음 단계

추가 검토를 위해 진단 로그 및 보고서를 Microsoft 지원 업로드할 수 있습니다. 지원에서 문제 해결 프로세스를 지원하기 위해 PerfInsights에서 생성된 출력을 전송하도록 요청할 수 있습니다.

다음 스크린샷과 유사한 메시지가 표시됩니다.

Microsoft 지원 샘플 메시지의 스크린샷

메시지의 지침에 따라 파일 전송 작업 영역에 액세스합니다. 보안을 강화하려면 처음 사용할 때 암호를 변경해야 합니다.

로그인한 후 PerfInsights에서 수집한 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip 파일을 업로드하는 대화 상자를 찾을 수 있습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.