Linux VM에서 Persistent Disk 성능 벤치마킹


이 문서에서는 Windows 가상 머신(VM) 인스턴스에서 Persistent Disk 성능을 벤치마킹하는 방법을 설��합니다. Linux VM의 경우 Linux VM에서 Persistent Disk 성능 벤치마킹을 참조하세요.

실행 중인 인스턴스에서 사용되는 디스크의 IOPS와 처리량을 측정하려면 원하는 구성으로 파일 시스템을 벤치마킹합니다. 이 옵션을 사용하면 기존 디스크의 콘텐츠가 손실되는 일 없이 실제 워크로드를 테스트할 수 있습니다. 기존 디스크의 파일 시스템을 벤치마킹할 때 개발 환경에 특정한 많은 요소가 벤치마킹 결과에 영향을 미칠 수 있으며 디스크 성능 한도에 도달하지 않을 수 있습니다.

Persistent Disk의 원시 성능을 측정하려면 블록 기기를 직접 벤치마킹합니다. 이 옵션을 사용하면 원시 디스크 성능을 디스크 성능 한도와 비교할 수 있습니다.

벤치마킹 소프트웨어 구성

Windows VM에서 Persistent Disk 성능을 벤치마킹하려면 DISKSPD를 사용합니다.

  1. VM 인스턴스에 연결

  2. Powershell을 열고 다음 명령어를 사용하여 DISKSPD 도구를 다운로드합니다.

    $client = New-Object System.Net.WebClient
    $client.DownloadFile("https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip","$env:temp\DiskSpd-download.zip")
    Expand-Archive -LiteralPath "$env:temp\DiskSpd-download.zip" C:\DISKSPD
    Get-ChildItem C:\DISKSPD
    

실행 중인 VM 인스턴스에서 디스크의 IOPS 및 처리량 벤치마킹

디스크의 콘텐츠가 손실되지 않으면서 실행 중인 VM 인스턴스의 활성 디스크에 있는 실제 워크로드의 IOPS와 처리량을 측정하려면 기존 파일 시스템의 새 디렉터리를 기준으로 벤치마킹합니다.

다음 단계에서는 테스트할 디스크가 D:으로 마운트되고 관리자 권한 명령 프롬프트 창에서 명령어가 실행된다고 가정합니다.

  1. VM에 연결

  2. DISKSPD 소프트웨어 구성을 확인하고 디렉터리를 64비트 바이너리로 변경합니다.

    cd C:\DISKSPD\amd64
    
  3. 디스크에 DISKTEST.DAT라는 새 10GB 파일을 만듭니다.

    set TESTFILE=D:\DISKTEST.DAT
    diskspd -d0 -c10G %TESTFILE%
    
  4. I/O 블록 크기를 1MB로 설정하고 I/O 깊이를 64 이상으로 설정한 상태로 여러 동시 스트림(16개 이상)에 순차적 쓰기를 수행하여 쓰기 처리량을 테스트합니다.

    diskspd -d60 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
    
  5. I/O 블록 크기를 4KB로 설정하고 I/O 깊이를 256 이상으로 설정한 상태로 무작위 쓰기를 수행하여 쓰기 IOPS를 테스트합니다.

    diskspd -d60 -b4K -o256 -Sh -w100 -r %TESTFILE%
    
  6. I/O 블록 크기를 1MB로 설정하고 I/O 깊이를 최소 64 이상으로 설정한 상태로 여러 동시 스트림(16개 이상)에 순차적 읽기를 수행하여 읽기 처리량을 테스트합니다.

    diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTFILE%
    
  7. I/O 블록 크기를 4KB로 설정하고 I/O 깊이를 256 이상으로 설정해서 무작위 읽기를 수행하여 읽기 IOPS를 테스트합니다.

    diskspd -d60 -b4K -o256 -Sh -r %TESTFILE%
    
  8. 삭제:

    del %TESTFILE%
    

Persistent Disk 원시 성능 벤치마킹

개발 환경 외부에서 Persistent Disk 볼륨의 성능만 측정하려면 폐기 Persistent Disk와 VM에서 블록 기기의 읽기 및 쓰기 성능을 테스트합니다.

  1. VM 인스턴스 만들기 및 시작

  2. 벤치마킹할 VM 인스턴스에 Persistent Disk를 추가합니다.

  3. VM 인스턴스에 연결

  4. DISKSPD 소프트웨어 구성을 확인하고 디렉터리를 64비트 바이너리로 변경합니다.

    cd C:\DISKSPD\amd64
    
  5. 디스크에 예약되지 않은 파티션이 없는지 확인합니다. 관리자 권한 명령어 프롬프트 창에 diskpart를 입력합니다.

    diskpart
    
  6. VM에 연결된 디스크를 나열합니다.

    DISKPART> list disk
    

    다음 예시 출력에서는 새로 생성된 1TB 디스크인 디스크 1이 출력에 표시됩니다.

      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online          120 GB  1024 KB        *
      Disk 1    Online         1024 GB  1023 GB        *
    
  7. 벤치마킹할 디스크를 선택합니다.

    DISKPART> select disk 1
    
  8. 선택한 디스크의 파티션을 나열합니다.

    DISKPART> list partition
    
       Partition ###  Type              Size       Offset
       -------------  ----------------  --------   -------
       Partition 1    Reserved              15 MB    17 KB
       Partition 2    Primary             1024 GB    16 MB
    
  9. 기본 파티션 2를 선택합니다.

    DISKPART> select partition 2
    
  10. 선택한 파티션을 삭제합니다.

    DISKPART> delete partition
    
  11. diskpart를 종료합니다.

    DISKPART> exit
    

벤치마킹하려는 디스크에 예약된 파티션 외에 다른 파티션이 있는 경우 위 단계를 반복해야 합니다. 예약된 파티션만 남아 있으면 다음 단계를 계속 진행합니다.

  1. 디스크를 식별하고 파티션이 없는 것을 확인한 후 TESTDRIVE 환경 변수를 '#'로 설정하고 테스트할 디스크 수를 설정합니다.

    C:/> set TESTDRIVE=#1
    
  2. I/O 블록 크기를 1MB로 설정하고 I/O 깊이를 64 이상으로 설정한 상태로 여러 동시 스트림(16개 이상)에 순차적 쓰기를 수행하여 쓰기 처리량을 테스트합니다.

    diskspd -d60 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
    
  3. I/O 블록 크기를 4KB로 설정하고 I/O 깊이를 256 이상으로 설정한 상태로 무작위 쓰기를 수행하여 쓰기 IOPS를 테스트합니다.

    diskspd -d60 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
    
  4. 쓰기 지연 시간을 테스트합니다. I/O 지연 시간을 테스트할 때는 VM이 최대 대역폭 또는 IOPS에 도달하지 않아야 합니다. 그렇지 않으면 관찰된 지연 시간에 실제 Persistent Disk I/O 지연 시간이 반영되지 않습니다.

    diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. I/O 블록 크기를 1MB로 설정하고 I/O 깊이를 최소 64 이상으로 설정한 상태로 여러 동시 스트림(16개 이상)에 순차적 읽기를 수행하여 읽기 처리량을 테스트합니다.

    diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
    
  6. I/O 블록 크기를 4KB로 설정하고 I/O 깊이를 256 이상으로 설정해서 무작위 읽기를 수행하여 읽기 IOPS를 테스트합니다.

    diskspd -d60 -b4K -o256 -Sh -r %TESTDRIVE%
    
  7. 읽기 지연 시간을 테스트하려면 디스크에 데이터를 채워 실질적으로 지연 시간을 측정하는 것이 중요합니다. Persistent Disk가 포화 한도에 도달하면 수신 I/O 작업이 푸시백되고 이로 인해 인위적인 I/O 지연 시간 증가로 반영되므로 이 테스트 중에는 VM이 IOPS 또는 처리량 한도에 도달하지 않아야 합니다.

    diskspd -d60 -b4K -o4 -Sh -r -L %TESTDRIVE%
    
  8. 순차적 읽기 대역폭을 테스트합니다.

    diskspd -d60 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
    
  9. 순차적 쓰기 대역폭을 테스트합니다.

    diskspd -d60 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
    
  10. 폐기된 영구 디스크와 VM을 삭제합니다.

    1. 성능 벤치마킹에 사용된 디스크를 삭제합니다.
    2. 성능 벤치마킹을 위해 만든 VM을 삭제합니다.

다음 단계