Compare o desempenho do disco permanente em uma VM do Windows


Este documento descreve como avaliar o desempenho do disco permanente em instâncias de máquina virtual (VM) do Windows. Para VMs Linux, consulte avaliação de desempenho do disco permanente em uma VM Linux .

Para medir o IOPS e a taxa de transferência de um disco em uso em uma instância em execução , compare o sistema de arquivos com a configuração pretendida. Use esta opção para testar uma carga de trabalho realista sem perder o conteúdo do disco existente. Observe que quando você compara o sistema de arquivos em um disco existente, há muitos fatores específicos do seu ambiente de desenvolvimento que podem afetar os resultados do benchmarking e você pode não atingir os limites de desempenho do disco .

Para medir o desempenho bruto de um disco permanente , compare o dispositivo de bloco diretamente. Use esta opção para comparar o desempenho bruto do disco com os limites de desempenho do disco.

Em VMs C4 , o Windows oferece suporte a uma profundidade máxima de 1.024 por fila de envio de dispositivo. Quando uma fila é preenchida, o Windows para de enviar E/S até que a fila seja parcialmente drenada, o que reduz significativamente o desempenho. Para evitar o acionamento desta condição, recomendamos limitar as cargas de trabalho de benchmarking a uma profundidade de fila agregada de 1.024 por volume anexado.

Configurar software de benchmarking

Para avaliar o desempenho do disco permanente em VMs do Windows, use DISKSPD .

  1. Conecte-se à sua instância de VM .

  2. Abra o Powershell e baixe a ferramenta DISKSPD usando o seguinte comando:

    $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
    

Compare IOPS e taxa de transferência de um disco em uma instância de VM em execução

Para medir o IOPS e a taxa de transferência para uma carga de trabalho realista em um disco ativo em uma instância de VM em execução sem perder o conteúdo do disco, compare com um novo diretório no sistema de arquivos existente.

Nas etapas a seguir, suponha que o disco a ser testado esteja montado como D: e os comandos sejam executados em uma janela do Prompt de Comando (cmd.exe) que possui privilégios de administrador:

  1. Conecte-se à sua VM .

  2. Verifique a configuração do software DISKSPD e altere o diretório para o binário de 64 bits:

    cd C:\DISKSPD\amd64
    
  3. Crie um novo arquivo de 10 GB chamado DISKTEST.DAT no disco:

    set TESTFILE=D:\DISKTEST.DAT
    diskspd -d0 -c10G %TESTFILE%
    
  4. Teste o rendimento de gravação executando gravações sequenciais com vários fluxos paralelos (16 ou mais), usando um tamanho de bloco de E/S de 1 MB e uma profundidade de E/S de pelo menos 64:

    diskspd -d60 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
    
  5. Teste IOPS de gravação executando gravações aleatórias, usando um tamanho de bloco de E/S de 4 KB e uma profundidade de E/S de pelo menos 256:

    diskspd -d60 -b4K -o256 -Sh -w100 -r %TESTFILE%
    
  6. Teste o rendimento de leitura realizando leituras sequenciais com vários fluxos paralelos (16 ou mais), usando um tamanho de bloco de E/S de 1 MB e uma profundidade de E/S de pelo menos 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTFILE%
    
  7. Teste IOPS de leitura realizando leituras aleatórias, usando um tamanho de bloco de E/S de 4 KB e uma profundidade de E/S de pelo menos 256:

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

    del %TESTFILE%
    

Comparação de desempenho bruto do disco permanente

Para medir o desempenho dos volumes de disco permanente fora do seu ambiente de desenvolvimento, teste o desempenho de leitura e gravação de um dispositivo de bloco em um disco permanente e uma VM descartáveis.

  1. Crie e inicie uma instância de VM .

  2. Adicione um disco permanente à instância de VM que você pretende avaliar.

  3. Conecte-se à sua instância de VM .

  4. Verifique a configuração do software DISKSPD e altere o diretório para o binário de 64 bits:

    cd C:\DISKSPD\amd64
    
  5. Verifique se não há partições não reservadas no disco. Digite diskpart em uma janela elevada do prompt de comando .

    diskpart
    
  6. Liste os discos anexados à VM:

    DISKPART> list disk
    

    A saída mostra o disco de 1 TB recém-criado, que é o Disco 1 no exemplo de saída a seguir:

      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online          120 GB  1024 KB        *
      Disk 1    Online         1024 GB  1023 GB        *
    
  7. Selecione o disco que você pretende avaliar.

    DISKPART> select disk 1
    
  8. Liste as partições no disco selecionado.

    DISKPART> list partition
    
       Partition ###  Type              Size       Offset
       -------------  ----------------  --------   -------
       Partition 1    Reserved              15 MB    17 KB
       Partition 2    Primary             1024 GB    16 MB
    
  9. Selecione a partição primária 2:

    DISKPART> select partition 2
    
  10. Exclua a partição selecionada:

    DISKPART> delete partition
    
  11. Sair do diskpart

    DISKPART> exit
    

As etapas anteriores devem ser repetidas se o disco que você pretende avaliar tiver outras partições além da partição reservada. Quando resta apenas a partição reservada, continue com as etapas a seguir:

  1. Depois de identificar o disco e verificar se não há partições, defina a variável de ambiente TESTDRIVE como '#' seguida do número do disco a ser testado.

    C:/> set TESTDRIVE=#1
    
  2. Teste o rendimento de gravação executando gravações sequenciais com vários fluxos paralelos (16 ou mais), usando um tamanho de bloco de E/S de 1 MB e uma profundidade de E/S de pelo menos 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
    
  3. Teste IOPS de gravação executando gravações aleatórias, usando um tamanho de bloco de E/S de 4 KB e uma profundidade de E/S de pelo menos 256:

    diskspd -d60 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
    
  4. Teste a latência de gravação. Ao testar a latência de E/S, a VM não deve atingir a largura de banda máxima ou IOPS; caso contrário, a latência observada não refletirá a latência real de E/S do disco permanente.

    diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Teste o rendimento de leitura realizando leituras sequenciais com vários fluxos paralelos (16 ou mais), usando um tamanho de bloco de E/S de 1 MB e uma profundidade de E/S de pelo menos 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
    
  6. Teste IOPS de leitura realizando leituras aleatórias, usando um tamanho de bloco de E/S de 4 KB e uma profundidade de E/S de pelo menos 256:

    diskspd -d60 -b4K -o256 -Sh -r %TESTDRIVE%
    
  7. Para testar a latência de leitura, é importante preencher o disco com dados para obter uma medição de latência realista. A VM não deve atingir IOPS ou limites de taxa de transferência durante esse teste porque, depois que o disco permanente atinge seu limite de saturação, ele atrasa as operações de E/S de entrada, e isso se reflete como um aumento artificial na latência de E/S.

    diskspd -d60 -b4K -o4 -Sh -r -L %TESTDRIVE%
    
  8. Teste a largura de banda de leitura sequencial.

    diskspd -d60 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
    
  9. Teste a largura de banda de gravação sequencial.

    diskspd -d60 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
    
  10. Limpe o disco permanente e a VM descartáveis:

    1. Exclua o disco usado para avaliação de desempenho.
    2. Exclua a VM criada para avaliação de desempenho.

O que vem a seguir