Analiza porównawcza dysków Premium Storage P30 na platformie Azure

9

Przeprowadzamy testy wydajności na dwóch nowych maszynach wirtualnych Standard DS13 (8 rdzeni, 56 GB) (obie wykorzystujące najnowszy / domyślny obraz systemu Windows 2012 R2) wspieranych przez usługę Premium Storage i osiągnęliśmy poziom 1 w testowaniu wydajności lokalnego dysku SSD.

Rozumiemy, że 25% lokalnego dysku SSD 400 GB dla tych maszyn wirtualnych jest udostępniane jako pamięć tymczasowa, a pozostałe 75% jest wykorzystywane do buforowania pamięci premium: http://azure.microsoft.com/blog/2014/12/11/new- maszyny wirtualne premium-storage-backed /

W przypadku pozostałych 25% spodziewamy się, że wydajność będzie zgodna z tymi wytycznymi: http://www.brentozar.com/archive/2014/09/azure-really-60-faster/ http://azure.microsoft.com/blog / 2014/10/06 / d-series-wydajność-oczekiwania /

... ale Crystal Disk Mark pokazuje, jak się czołga :

               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)

Wydajność dysku systemu operacyjnego jest lepsza, ale nie jest to 150 MB / s, którego można oczekiwać od dysku P20 (zakładając, że to jest miejsce na domyślny dysk systemu operacyjnego o pojemności 127 GB).

Przy nadziei:

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

Widzenie:

           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)

A wydajność dysku P30 (z pamięcią podręczną ReadOnly ) nie jest znacznie lepsza:

           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)

W porównaniu do naszego obecnego CloudDrive z buforowaniem hosta wdrożonym na D13 (zauważ wydajność losowych odczytów 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)

I to właśnie raportuje SQLIO dla lokalnego dysku SSD:

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

A dla 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

5000 IOPS reklamowanych dla P30 utrzymuje się, ale co z przepustowością 200 MB / s na dysk?

UWAGA: Próby utworzenia dysku danych P30 z polityką pamięci podręcznej ReadWrite prowadzą do:

Update-AzureVm: BadRequest: Ustawienie pamięci podręcznej dysku ReadWrite nie jest obsługiwane dla DataVirtualHardDisk.

Wszelkie wskazówki będą mile widziane:

  • Dlaczego lokalna pamięć SSD jest dławiona przy 500 IOPS i przepustowości 1-4 MB / s?
  • Jak osiągamy 200 MB / s przy zapisach, jak widzimy przy odczytach na P30, jaki test należy przeprowadzić?
  • MS: czy możesz opublikować testy I / O, które możemy uruchomić, aby sprawdzić maksymalne limity?
Nariman
źródło
3
To pytanie należy naprawdę przesłać do pomocy technicznej platformy Azure, ponieważ nie znam żadnego sposobu, na który ktokolwiek mógłby tutaj odpowiedzieć, z wyjątkiem anegdot.
Mark Henderson

Odpowiedzi:

7

Aby odpowiedzieć na twoje pytania:

  1. Pamięć lokalna jest ograniczona do 500 IOPS @ 8KB. Limity te były błędem i wkrótce zostaną znacznie podwyższone.
  2. Aby uzyskać 200 MB / s przy zapisie, musisz (a) użyć bloku o wielkości co najmniej 40 KB (w przeciwnym razie najpierw natrafisz na limit 5000 IOPS) i (b) użyć głębokości kolejki co najmniej 25 (dla 40 KB blok, gdy rozmiar bloku rośnie, możesz użyć mniejszej głębokości kolejki).
  3. Zgadzamy się, byłoby miło, gdybyśmy opublikowali testy porównawcze, których można użyć do zweryfikowania limitów. Jeśli to zrobimy, prawdopodobnie nie nastąpi to dopóki nie wyjdziemy z podglądu.

David Berg - Zespół ds. Wydajności Microsoft Azure

David Berg - MSFT
źródło
Używam bloków 64 KB i dostaję tylko 1500 IOPS i 90 MB / s, dyskutuj ... P30
David Aleu
@DavidAleu Dostaję również około 1500 IOPS na dyskach P30.
makhdumi
0

Magazyn premium obsługuje tylko pamięć podręczną odczytu, a nie odczytuje / zapisuje jak standardowe dyski

użytkownik271956
źródło
0

Twoja przepustowość w testach SQLIO jest ograniczona, ponieważ używasz domyślnego rozmiaru bloku We / Wy 2 KB. Weź IOPS na dysk P30, który aktualnie otrzymujesz, i pomnóż przez rozmiar bloku, a otrzymasz 5103 IOPS * 2 KB = 10206 KB / s lub 9,97 MB / s, co jest raportowaną przepustowością w twoich testach. Zwiększ rozmiar bloku w poleceniu SQLIO (patrz http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio/ ), a będziesz w stanie znaleźć limit przepustowości. Wielkość bloku we / wy 64 KB powinna dać 5103 IOPS * 64 KB = 326592 KB / s lub 318,94 MB / s i przetestować reklamowany limit Microsoft.

Nie testowałem lokalnego dysku SSD na maszynach wirtualnych z serii D, ale nie mam jeszcze dostępu do pamięci premium, więc w tym przypadku nie pomogłoby. Domyślam się tylko, że gdy używasz magazynu premium na komputerze, który wykorzystuje 75% pojemności lokalnego dysku SSD, może również ograniczać dostęp do lokalnego dysku SSD, aby zagwarantować wydajność pamięci premium.

Phillip Jarre
źródło