Comparar o desempenho do disco permanente em uma VM do Windows


Neste documento, descrevemos como comparar o desempenho do disco permanente em instâncias de máquina virtual (VM) do Windows. Para VMs do Linux, consulte Comparar o desempenho do disco permanente em uma VM do Linux.

Para medir IOPS e capacidade de um disco em uso em uma instância em execução, compare o sistema de arquivos com a configuração pretendida. Use essa opção para testar uma carga de trabalho realista sem perder o conteúdo do disco existente. Observação: quando você compara os sistemas de arquivos em um disco já existente, há muitos fatores específicos para seu ambiente de desenvolvimento que podem afetar os resultados do comparativo de mercado, e talvez você não atinja os limites de desempenho do disco.

Para medir o desempenho bruto de um disco permanente, faça comparações diretas com o dispositivo em bloco. Use essa opção para comparar o desempenho do disco bruto com os limites de desempenho do disco.

Nas VMs C4, o Windows oferece suporte a uma profundidade máxima de 1.024 por fila de envio de dispositivos. Quando uma fila é preenchida, o Windows deixa de enviar E/S até que a fila seja parcialmente drenada, o que representa reduzir o desempenho. Para evitar o acionamento dessa condição, recomendamos limitar as cargas de trabalho de comparação de mercado a uma profundidade de fila agregada de 1.024 por volume anexado.

Configurar o software de comparação

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

  1. Conecte-se à instância da VM.

  2. Abra o PowerShell e faça o download da 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
    

Comparar as IOPS e a capacidade de um disco em uma instância de VM em execução

Se você quiser medir as IOPS e a capacidade de processamento de 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-o com um novo diretório nos sistemas de arquivos que já existem.

Nas etapas a seguir, pressupomos que o disco a ser testado esteja montado como D: e que os comandos sejam executados em uma janela elevada do Prompt de comando:

  1. Conectar-se à VM.

  2. Verifique a configuração de software DISKSPD e mude 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 a capacidade de processamento para gravação realizando gravações sequenciais com vários streams 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 as 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 a capacidade de leitura executando leituras sequenciais com vários streams 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 as IOPS de leitura executando 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. Limpeza:

    del %TESTFILE%
    

Comparação do desempenho do disco permanente bruto

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

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

  2. Adicione um disco permanente à instância da VM que você pretende comparar.

  3. Conecte-se à instância da VM.

  4. Verifique a configuração de software DISKSPD e mude 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ê quer comparar.

    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. Saia do diskpart:

    DISKPART> exit
    

Repita as etapas anteriores se o disco que você pretende comparar tiver outras partições além da partição reservada. Quando apenas a partição reservada permanecer, continue com as seguintes etapas:

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

    C:/> set TESTDRIVE=#1
    
  2. Teste a capacidade de processamento para gravação realizando gravações sequenciais com vários streams paralelos (16 ou mias), 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 as 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. Durante o teste da latência de E/S, é importante que a VM não alcance o limite de largura de banda ou de IOPS. Caso contrário, a latência de E/S real do disco permanente não será refletida.

    diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Teste a capacidade de leitura executando leituras sequenciais com vários streams 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 as IOPS de leitura executando 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 conseguir uma medição de latência realista. A VM não pode atingir limites de IOPS ou de capacidade durante esse teste porque, depois que o disco permanente atingir o limite de saturação, ele retornará as operações de E/S de entrada, e isso é refletido como um aumento artificial 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 descartável e a VM:

    1. Exclua o disco usado para comparar o desempenho.
    2. Exclua a VM criada para a comparação do desempenho.

A seguir