Benchmarking dos discos Premium Storage P30 do Azure

8

Estamos executando testes de desempenho em duas novas VMs Standard DS13 (8 Core, 56 GB) (ambas usando a imagem mais recente / padrão do Windows 2012 R2) respaldadas pelo Premium Storage e atingimos uma parede com a etapa 1 testando o local Desempenho SSD.

Entendemos que 25% do SSD local de 400 GB dessas VMs são disponibilizados como armazenamento temporário e os outros 75% são usados para o armazenamento em cache do Premium Storage: link

Nos restantes 25%, esperamos ver o desempenho ao longo destas linhas: link link

... mas o Crystal Disk Mark mostra o rastreamento :

               Sequential Read :     4.097 MB/s
              Sequential Write :     4.096 MB/s
             Random Read 512KB :     4.112 MB/s
            Random Write 512KB :     4.112 MB/s
        Random Read 4KB (QD=1) :     2.057 MB/s [   502.3 IOPS]
       Random Write 4KB (QD=1) :     2.057 MB/s [   502.2 IOPS]
       Random Read 4KB (QD=32) :     2.048 MB/s [   500.0 IOPS]
      Random Write 4KB (QD=32) :     2.047 MB/s [   499.7 IOPS]

  Test : 50 MB [D: 7.2% (8.1/112.0 GB)] (x5)
  Date : 2015/02/14 15:35:41
    OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

O desempenho do disco do SO é melhor, mas não chega perto dos 150 MB / s esperados para um disco P20 (supondo que seja o que está alocado para o disco OS padrão de 127GB).

Esperando:

link

Vendo:

           Sequential Read :    66.031 MB/s
          Sequential Write :    63.034 MB/s
         Random Read 512KB :    65.861 MB/s
        Random Write 512KB :    63.580 MB/s
    Random Read 4KB (QD=1) :     2.097 MB/s [   511.9 IOPS]
   Random Write 4KB (QD=1) :     2.047 MB/s [   499.7 IOPS]
   Random Read 4KB (QD=32) :     2.086 MB/s [   509.3 IOPS]
  Random Write 4KB (QD=32) :     2.078 MB/s [   507.4 IOPS]

  Test : 50 MB [C: 12.9% (16.4/127.0 GB)] (x5)
  Date : 2015/02/14 15:46:35
    OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

E o desempenho do disco P30 (com o cache ReadOnly ) não é muito melhor:

           Sequential Read :   204.567 MB/s
          Sequential Write :    39.677 MB/s
         Random Read 512KB :   204.549 MB/s
        Random Write 512KB :    34.865 MB/s
    Random Read 4KB (QD=1) :    20.951 MB/s [  5114.9 IOPS]
   Random Write 4KB (QD=1) :     1.666 MB/s [   406.7 IOPS]
   Random Read 4KB (QD=32) :    20.893 MB/s [  5100.9 IOPS]
  Random Write 4KB (QD=32) :    20.944 MB/s [  5113.4 IOPS]

  Test : 50 MB [E: 0.0% (0.2/1023.0 GB)] (x5)
  Date : 2015/02/14 15:22:59
    OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

Quando comparado ao nosso CloudDrive atual com o cache de host implantado no D13s (observe o desempenho das leituras aleatórias de 4KB):

           Sequential Read :   136.711 MB/s
          Sequential Write :    10.210 MB/s
         Random Read 512KB :   190.744 MB/s
        Random Write 512KB :     9.063 MB/s
    Random Read 4KB (QD=1) :    10.813 MB/s [  2639.8 IOPS]
   Random Write 4KB (QD=1) :     0.508 MB/s [   107.5 IOPS]
   Random Read 4KB (QD=32) :   106.533 MB/s [ 26009.1 IOPS]
  Random Write 4KB (QD=32) :     9.363 MB/s [  2286.0 IOPS]

  Test : 50 MB [F: 4.1% (24.9/600.0 GB)] (x5)
  Date : 2015/02/14 20:25:01
  OS : Windows Server 2012 Datacenter (Full installation) [6.2 Build 9200] (x64)

E é isso que o SQLIO reporta para o SSD local:

C:\Program Files (x86)\SQLIO>sqlio -dD
sqlio v1.5.SG
1 thread reading for 30 secs from file D:testfile.dat
        using 2KB IOs over 128KB stripes with 64 IOs per run
size of file D:testfile.dat needs to be: 8388608 bytes
current file size:      0 bytes
need to expand by:      8388608 bytes
expanding D:testfile.dat ... done.
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:   499.38
MBs/sec:     0.97

E para o P30:

C:\Program Files (x86)\SQLIO>sqlio -dE
sqlio v1.5.SG
1 thread reading for 30 secs from file E:testfile.dat
        using 2KB IOs over 128KB stripes with 64 IOs per run
size of file E:testfile.dat needs to be: 8388608 bytes
current file size:      0 bytes
need to expand by:      8388608 bytes
expanding E:testfile.dat ... done.
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:  5103.03
MBs/sec:     9.96

As 5000 IOPS anunciadas para o P30 estão funcionando, mas e quanto ao rendimento de 200 MB / s por disco?

NOTA: As tentativas de criar o disco de dados P30 com a política de cache ReadWrite resultam em:

Update-AzureVm: BadRequest: A configuração de cache de disco ReadWrite não é suportada para DataVirtualHardDisk.

Qualquer orientação seria apreciada:

  • Por que o armazenamento SSD local é limitado a 500 IOPS e 1 a 4 MB / s de taxa de transferência?
  • Como alcançamos 200MB / s em gravações como vemos nas leituras em P30s, qual é o teste a ser executado?
  • MS: você pode publicar benchmarks de I / O que podemos executar para validar limites máximos?
por Nariman 15.02.2015 / 17:40

3 respostas

7

Para responder às suas perguntas:

  1. O armazenamento local é limitado a 500 IOPS @ 8KB. Esses limites eram     erro e será aumentado substancialmente em breve.
  2. Para atingir 200 MB / s nas gravações, é necessário (a) usar um tamanho de bloco de pelo menos 40 KB     (caso contrário, você encontrará o limite de 5.000 IOPS primeiro), e (b) usará um limite     profundidade da fila de pelo menos 25 (para um bloco de 40 KB, conforme o tamanho do bloco     para cima, você pode usar uma profundidade de fila menor).
  3. Concordamos que seria bom se publicássemos referências que você possa usar para validar os limites. Se o fizermos, provavelmente não será até sairmos da pré-visualização.

David Berg - Equipe de desempenho do Microsoft Azure

    
por 04.03.2015 / 17:24
0

O armazenamento premium suporta apenas leitura de cache e não leitura / gravação como discos padrão

    
por 18.02.2015 / 00:20
0

Sua taxa de transferência nos testes SQLIO é limitada porque você está usando o tamanho de bloco de E / S padrão de 2 KB. Pegue o IOPS no disco P30 que você está recebendo atualmente e multiplique pelo tamanho do bloco e obtenha 5103 IOPS * 2 KB = 10206 KB / s ou 9,97 MB / s, que é a taxa de transferência relatada em seus testes. Aumente o tamanho do bloco no seu comando SQLIO (consulte link ) e você poderá encontrar o limite de rendimento. Um tamanho de bloco IO de 64 KB deve fornecer 5103 IOPS * 64 KB = 326592 KB / s ou 318,94 MB / se testar o limite anunciado pela Microsoft.

Eu não testei os SSDs locais nas VMs da minha série D, mas ainda não tenho acesso ao armazenamento premium, por isso não ajudaria nesse caso. Meu único palpite é que, uma vez que você esteja usando armazenamento premium na máquina que está usando 75% da capacidade de SSD local, ele também pode limitar seu acesso SSD local para garantir o desempenho de armazenamento premium.

    
por 18.02.2015 / 04:55

Tags