Analisi comparativa dei dischi P30 di archiviazione Premium di Azure


9

Stiamo eseguendo test delle prestazioni su due nuove VM DS13 standard (8 core, 56 GB) (entrambe utilizzando l'immagine Windows 2012 R2 più recente / predefinita) supportata da Archiviazione Premium e abbiamo superato un muro con il passaggio 1 nel test delle prestazioni SSD locali.

Comprendiamo che il 25% dell'SSD locale da 400 GB per queste macchine virtuali è disponibile come memoria temporanea e l'altro 75% viene utilizzato per la memorizzazione nella cache di archiviazione Premium: http://azure.microsoft.com/blog/2014/12/11/new- premio-stoccaggio-backed-virtual-machines /

Sul restante 25%, prevediamo di vedere prestazioni in questo senso: http://www.brentozar.com/archive/2014/09/azure-really-60-faster/ http://azure.microsoft.com/blog / 2014/10/06 / serie D-prestazioni-aspettative /

... ma Crystal Disk Mark lo mostra strisciare lungo:

               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)

Le prestazioni del disco del sistema operativo sono migliori ma in nessun modo vicine ai 150 MB / s che ci si aspetterebbe da un disco P20 (supponendo che sia quello che è allocato per il disco del sistema operativo predefinito da 127 GB).

Aspetta:

http://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/

Vedendo:

           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 le prestazioni del disco P30 (con cache ReadOnly ) non sono molto migliori:

           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)

Rispetto al nostro attuale CloudDrive con memorizzazione nella cache dell'host distribuita sui D13 (notare le prestazioni delle letture casuali 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 questo è ciò che SQLIO riporta per l'SSD locale:

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 per la 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

I 5000 IOPS pubblicizzati per il P30 stanno resistendo, ma per quanto riguarda il throughput di 200 MB / s per disco?

NOTA: i tentativi di creare il disco dati P30 con i criteri della cache ReadWrite comportano:

Update-AzureVm: BadRequest: l'impostazione della cache del disco ReadWrite non è supportata per DataVirtualHardDisk.

Qualsiasi consiglio sarebbe apprezzato:

  • Perché l'archiviazione SSD locale è limitata a 500 IOPS e una velocità effettiva di 1-4 MB / s?
  • Come possiamo ottenere 200 MB / s nelle scritture come vediamo con le letture su P30, qual è il test da eseguire?
  • MS: puoi pubblicare benchmark I / O che possiamo eseguire per convalidare i limiti massimi?

3
Questa è una domanda che deve davvero essere inviata al supporto di Azure, poiché non conosco alcun modo in cui chiunque qui possa rispondere con qualsiasi cosa tranne gli aneddoti.
Mark Henderson,

Risposte:


7

Per rispondere alle tue domande:

  1. La memoria locale è limitata a 500 IOPS a 8 KB. Tali limiti sono stati un errore e saranno aumentati sostanzialmente presto.
  2. Per raggiungere 200 MB / sec nelle scritture devi (a) utilizzare una dimensione del blocco di almeno 40 KB (altrimenti corri prima nel limite di 5.000 IOPS) e (b) usa una profondità della coda di almeno 25 (per un 40 KB blocco, man mano che le dimensioni del blocco aumentano, è possibile utilizzare una profondità della coda inferiore).
  3. Siamo d'accordo, sarebbe bello se abbiamo pubblicato benchmark che è possibile utilizzare per convalidare i limiti. Se lo facciamo, probabilmente non lo sarà fino a quando non usciremo dall'anteprima.

David Berg - Performance Team di Microsoft Azure


Sto usando blocchi da 64 KB e ottengo solo 1.500 IOPS e 90 MB / sec, discutere ... P30
David Aleu

@DavidAleu Ottengo solo circa 1500 IOPS su dischi P30.
makhdumi,

0

L'archiviazione premium supporta solo la cache di lettura e non la lettura / scrittura come i dischi standard


0

La velocità effettiva nei test SQLIO è limitata perché stai utilizzando le dimensioni predefinite del blocco IO da 2 KB. Prendi gli IOPS sul disco P30 che stai attualmente ricevendo e moltiplica per le dimensioni del blocco e ottieni 5103 IOPS * 2 KB = 10206 KB / so 9,97 MB / s, che è il throughput riportato nei tuoi test. Aumenta la dimensione del blocco nel tuo comando SQLIO (vedi http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio/ ) e sarai in grado di trovare il limite di throughput. Una dimensione del blocco IO di 64 KB dovrebbe fornire 5103 IOPS * 64 KB = 326592 KB / so 318,94 MB / se testare il limite pubblicizzato di Microsoft.

Non avevo testato gli SSD locali sulle macchine virtuali della mia serie D, ma non ho ancora accesso all'archiviazione premium, quindi in questo caso non sarebbe d'aiuto. La mia unica ipotesi è che una volta che si utilizza l'archiviazione premium sulla macchina che utilizza il 75% della capacità SSD locale, potrebbe anche limitare l'accesso SSD locale per garantire prestazioni di archiviazione premium.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.