Este documento descreve como realizar testes de referência do desempenho do disco persistente em instâncias de máquinas virtuais (VMs) do Windows. Para VMs Linux, consulte o artigo sobre como comparar o desempenho do Persistent Disk numa VM Linux.
Para medir os IOPS e o débito de um disco em utilização numa instância em execução, teste o desempenho do sistema de ficheiros com a configuração pretendida. Use esta opção para testar uma carga de trabalho realista sem perder o conteúdo do disco existente. Tenha em atenção que, quando compara o desempenho do sistema de ficheiros num disco existente, existem muitos fatores específicos do seu ambiente de desenvolvimento que podem afetar os resultados da comparação do desempenho e pode não atingir os limites de desempenho do disco.
Para medir o desempenho não processado de um Persistent Disk, faça um teste de referência do dispositivo de blocos diretamente. Use esta opção para comparar o desempenho do disco não processado com os limites de desempenho do disco.
Nas VMs C4, o Windows suporta uma profundidade máxima de 1024 por fila de envio de dispositivos. Quando uma fila fica cheia, o Windows deixa de enviar E/S até que a fila seja parcialmente esvaziada, o que reduz significativamente o desempenho. Para evitar acionar esta condição, recomendamos que limite as cargas de trabalho de testes de referência a uma profundidade da fila agregada de 1024 por volume anexado.
Configure o software de testes de referência
Para testar o desempenho do disco persistente em VMs Windows, use o DISKSPD
.
Abra o Powershell e transfira a ferramenta
DISKSPD
com 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
Teste o desempenho de IOPS e débito de um disco numa instância de VM em execução
Para medir as IOPS e a taxa de transferência para uma carga de trabalho realista num disco ativo numa instância de VM em execução sem perder o conteúdo do disco, faça um teste de referência em relação a um novo diretório no sistema de ficheiros existente.
Nos passos seguintes, partimos do princípio de que o disco a testar está montado como D:
e os comandos são executados numa janela de Linha de comandos (cmd.exe) com privilégios de administrador:
Verifique a
DISKSPD
configuração do software e altere o diretório para o binário de 64 bits:cd C:\DISKSPD\amd64
Crie um novo ficheiro de 10 GB denominado
DISKTEST.DAT
no disco:set TESTFILE=D:\DISKTEST.DAT diskspd -d0 -c10G %TESTFILE%
Teste a taxa de transferência de gravação executando 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 -d300 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
Teste as IOPS de escrita realizando escritas aleatórias, usando um tamanho de bloco de E/S de 4 KB e uma profundidade de E/S de, pelo menos, 256:
diskspd -d300 -b4K -o256 -Sh -w100 -r %TESTFILE%
Teste o débito de leitura executando 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 -d300 -b1M -o64 -Sh -t16 -si %TESTFILE%
Teste as IOPS de leitura fazendo 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 -d300 -b4K -o256 -Sh -r %TESTFILE%
Limpar:
del %TESTFILE%
Testes de referência do desempenho do disco persistente não processado
Para medir o desempenho dos volumes do disco persistente apenas fora do seu ambiente de desenvolvimento, teste o desempenho de leitura e escrita de um dispositivo de blocos num disco persistente e numa VM descartáveis.
Adicione um disco persistente à instância de VM que quer usar como referência.
Verifique a
DISKSPD
configuração do software e altere o diretório para o binário de 64 bits:cd C:\DISKSPD\amd64
Certifique-se de que não existem partições não reservadas no disco. Introduza
diskpart
numa janela da Linha de comandos com privilégios elevados.diskpart
Liste os discos anexados à VM:
DISKPART> list disk
A saída mostra o disco de 1 TB recém-criado, que é o disco 1 na saída de exemplo seguinte:
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 120 GB 1024 KB * Disk 1 Online 1024 GB 1023 GB *
Selecione o disco que pretende testar.
DISKPART> select disk 1
Apresentar a lista das 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
Selecione a partição principal 2:
DISKPART> select partition 2
Elimine a partição selecionada:
DISKPART> delete partition
Sair do diskpart
DISKPART> exit
Os passos anteriores devem ser repetidos se o disco que pretende testar tiver outras partições além da partição reservada. Quando apenas restar a partição reservada, continue com os passos seguintes:
Depois de identificar o disco e verificar que não existem partições, defina a variável de ambiente
TESTDRIVE
como "#" seguida do número do disco a testar.C:/> set TESTDRIVE=#1
Teste a taxa de transferência de escrita executando escritas 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 -d300 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
Teste as IOPS de escrita realizando escritas aleatórias, usando um tamanho de bloco de E/S de 4 KB e uma profundidade de E/S de, pelo menos, 256:
diskspd -d300 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
Teste a latência de escrita. Durante o teste da latência de E/S, a VM não pode atingir a largura de banda máxima nem os IOPS. Caso contrário, a latência observada não reflete a latência de E/S real do disco persistente.
diskspd -d300 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
Teste a taxa de transferência de leitura executando 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 -d300 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
Teste as IOPS de leitura fazendo 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 -d300 -b4K -o256 -Sh -r %TESTDRIVE%
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 pode atingir os limites de IOPS nem de débito durante este teste, porque, depois de o disco persistente atingir o limite de saturação, rejeita as operações de E/S recebidas, o que se reflete num aumento artificial da latência de E/S.
diskspd -d300 -b4K -o4 -Sh -r -L %TESTDRIVE%
Teste a largura de banda de leitura sequencial.
diskspd -d300 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
Teste a largura de banda de escrita sequencial.
diskspd -d300 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
Limpe o disco persistente e a VM descartáveis:
- Elimine o disco usado para testar o desempenho.
- Elimine a VM criada para testes de referência de desempenho.
O que se segue?
- Saiba como monitorizar o desempenho do disco revendo as métricas de desempenho do disco persistente.
- Saiba mais sobre os preços dos discos persistentes.
- Saiba como otimizar o desempenho do disco persistente.