Sdílet prostřednictvím


Srovnávací test disku

Platí pro: ✔️ Virtuální počítače s Linuxem ✔️ – Flexibilní škálovací sady ✔️ s Windows ✔️ – Jednotné škálovací sady

Srovnávací testy jsou proces simulace různých úloh v aplikaci a měření výkonu jednotlivých úloh. Pomocí kroků popsaných v článku Návrh pro vysoký výkon jste shromáždili požadavky na výkon aplikace. Spuštěním nástrojů pro srovnávací testy na virtuálních počítačích, které aplikaci hostují, můžete určit úrovně výkonu, kterých může vaše aplikace dosáhnout s prémiovými disky SSD. V tomto článku uvádíme příklady srovnávacích testů Standard_D8ds_v4 virtuálních počítačů zřízených pomocí disků AZURE SSD úrovně Premium.

Použili jsme běžné nástroje pro srovnávací testy DiskSpd a FIO pro Windows a Linux. Tyto nástroje vytváří několik vláken simulujících produkční prostředí, jako je úloha, a měří výkon systému. Pomocí nástrojů můžete také nakonfigurovat parametry, jako je velikost bloku a hloubka fronty, které u aplikace obvykle nemůžete změnit. Získáte tak větší flexibilitu pro zajištění maximálního výkonu na virtuálních počítačích s vysokým škálováním zřízených s disky SSD úrovně Premium pro různé typy aplikačních úloh. Další informace o každém nástroji pro srovnávací testy najdete v tématu DiskSpd a FIO.

Pokud chcete postupovat podle následujících příkladů, vytvořte Standard_D8ds_v4 a připojte k virtuálnímu počítači čtyři disky SSD úrovně Premium. Ze čtyř disků nakonfigurujte tři s ukládáním do mezipaměti hostitele jako "Žádný" a prokládejte je do svazku s názvem NoCacheWrites. Nakonfigurujte ukládání do mezipaměti hostitele jako "Jen pro čtení" na zbývajícím disku a vytvořte s tímto diskem svazek s názvem CacheReads. Pomocí tohoto nastavení můžete zobrazit maximální výkon čtení a zápisu z Standard_D8ds_v4 virtuálního počítače. Podrobný postup vytvoření Standard_D8ds_v4 s disky SSD úrovně Premium najdete v tématu Návrh pro zajištění vysokého výkonu.

Zahřátí mezipaměti

Disk s ukládáním do mezipaměti hostitele Jen pro čtení může poskytovat vyšší počet IOPS, než je limit disku. Pokud chcete dosáhnout tohoto maximálního výkonu čtení z mezipaměti hostitele, musíte nejprve zahřát mezipaměť tohoto disku. Tím se zajistí, že operace čtení, které bude nástroj pro srovnávací testy řídit na svazku CacheReads, se skutečně dostanou do mezipaměti, a ne přímo na disk. Přístupy do mezipaměti mají za následek více IOPS z jednoho disku s povolenou mezipamětí.

Důležité

Mezipaměť musíte před spuštěním srovnávacích testů zahřát při každém restartování virtuálního počítače.

DISKSPD

Na virtuálním počítači si stáhněte nástroj DISKSP . DISKSPD je nástroj, který si můžete přizpůsobit a vytvořit si vlastní syntetické úlohy. Ke spuštění srovnávacích testů použijeme stejné nastavení, které je popsané výše. Můžete změnit specifikace a otestovat různé úlohy.

V tomto příkladu použijeme následující sadu parametrů směrného plánu:

  • -c200G: Vytvoří (nebo znovu vytvoří) ukázkový soubor použitý v testu. Dá se nastavit v bajtech, KiB, MiB, GiB nebo blocích. V tomto případě se k minimalizaci ukládání paměti do mezipaměti používá velký soubor cílového souboru o velikosti 200 GiB.
  • -w100: Určuje procento operací, které jsou požadavky na zápis (-w0 odpovídá 100 % čtení).
  • -b4K: Označuje velikost bloku v bajtech, KiB, MiB nebo GiB. V tomto případě se k simulaci náhodného V/V testu používá velikost bloku 4K.
  • -F4: Nastaví celkem čtyři vlákna.
  • -r: Označuje náhodný vstupně-výstupní test (přepíše parametr -s).
  • -o128: Označuje počet nevyřízených vstupně-výstupních požadavků na cíl na vlákno. Označuje se také jako hloubka fronty. V tomto případě se ke zdůraznění procesoru používá 128.
  • -W7200: Určuje dobu zahřívací doby před zahájením měření.
  • -d30: Určuje dobu trvání testu, bez zahřátí.
  • -Sh: Zakažte ukládání do mezipaměti pro zápis softwaru a hardwaru (ekvivalent k -Suw).

Úplný seznam parametrů najdete v úložišti GitHub.

Maximální počet IOPS zápisu

K řízení operací zápisu používáme velkou hloubku fronty 128, malý blok o velikosti 8 kB a čtyři pracovní vlákna. Pracovní procesy zápisu řídí provoz na svazku NoCacheWrites, který má tři disky s mezipamětí nastavenou na hodnotu None.

Spusťte následující příkaz pro 30 sekund zahřívací a 30 sekund měření:

diskspd -c200G -w100 -b8K -F4 -r -o128 -W30 -d30 -Sh testfile.dat

Výsledky ukazují, že Standard_D8ds_v4 virtuální počítač dosáhl maximálního limitu IOPS zápisu 12 800.

Pro 3208642560 celkový počet bajtů, maximální celkový počet vstupně-výstupních operací 391680, celkem 101,97 MiB/s a celkem 13052,65 vstupně-výstupních operací za sekundu.

Maximální počet IOPS čtení

K řízení operací čtení používáme vysokou hloubku fronty 128, malý blok o velikosti 4 kB a čtyři pracovní vlákna. Pracovní procesy čtení řídí provoz na svazku CacheReads, který má jeden disk s mezipamětí nastavenou na "Jen pro čtení".

Spusťte následující příkaz pro dvě hodiny zahřátí a 30 sekund měření:

diskspd -c200G -b4K -F4 -r -o128 -W7200 -d30 -Sh testfile.dat

Výsledky ukazují, že Standard_D8ds_v4 virtuální počítač dosáhl maximálního limitu IOPS čtení 77 000.

U 9652785152 celkového počtu bajtů bylo 2356637 celkový počet vstupně-výstupních operací, celkový počet MiB/s 306,72 a celkem 78521,23 vstupně-výstupních operací za sekundu.

Maximální propustnost

Pokud chcete dosáhnout maximální propustnosti čtení a zápisu, můžete přejít na větší velikost bloku 64 kB.

FIO

FIO je oblíbený nástroj pro srovnávací testy úložiště na virtuálních počítačích s Linuxem. Je flexibilní pro výběr různých velikostí vstupně-výstupních operací, sekvenčních nebo náhodných čtení a zápisů. Vytváří pracovní vlákna nebo procesy pro provádění zadaných vstupně-výstupních operací. Pomocí souborů úloh můžete určit typ vstupně-výstupních operací, které musí každé pracovní vlákno provést. Pro každý scénář jsme vytvořili jeden soubor úlohy, jak je znázorněno v následujících příkladech. Můžete změnit specifikace v těchto souborech úloh a testovat různé úlohy spuštěné na Premium Storage. V příkladech používáme Standard_D8ds_v4 se systémem Ubuntu. Použijte stejné nastavení jako na začátku části srovnávacího testu a před spuštěním srovnávacích testů zahřejte mezipaměť.

Než začnete, stáhněte si fio a nainstalujte ho na virtuální počítač.

Spusťte následující příkaz pro Ubuntu.

apt-get install fio

Používáme čtyři pracovní vlákna pro řízení operací zápisu a čtyři pracovní vlákna pro řízení operací čtení na discích. Pracovní procesy zápisu řídí provoz na svazku "nocache", který má tři disky s mezipamětí nastavenou na Hodnotu Žádné. Pracovní procesy čtení řídí provoz na svazku "readcache", který má jeden disk s mezipamětí nastavenou na "Jen pro čtení".

Maximální počet IOPS zápisu

Vytvořte soubor úlohy s následujícími specifikacemi, abyste získali maximální počet vstupně-výstupních operací zápisu za sekundu. Pojmenujte ji "fiowrite.ini".

[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4

[writer1]
rw=randwrite
directory=/mnt/nocache

Všimněte si následujících klíčových věcí, které jsou v souladu s pokyny pro návrh probíranými v předchozích částech. Tyto specifikace jsou nezbytné pro dosažení maximálního počtu IOPS.

  • Vysoká hloubka fronty 256.
  • Malý blok o velikosti 4 kB.
  • Více vláken provádějících náhodné zápisy.

Spuštěním následujícího příkazu spusťte test FIO po dobu 30 sekund.

sudo fio --runtime 30 fiowrite.ini

Během testování můžete zobrazit počet vstupně-výstupních operací zápisu za sekundu, které virtuální počítač a disky Premium poskytují. Jak je znázorněno v následující ukázce, Standard_D8ds_v4 virtuální počítač poskytuje limit maximálního počtu IOPS zápisu 12 800 IOPS.
Počet doručovaných virtuálních počítačů s IOPS zápisu a disků SSD úrovně Premium ukazuje, že zápisy jsou 13,1 00 IOPS.

Maximální počet IOPS čtení

Vytvořte soubor úlohy s následujícími specifikacemi, abyste získali maximální počet IOPS čtení. Pojmenujte ji "fioread.ini".

[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4

[reader1]
rw=randread
directory=/mnt/readcache

Všimněte si následujících klíčových věcí, které jsou v souladu s pokyny pro návrh probíranými v předchozích částech. Tyto specifikace jsou nezbytné pro dosažení maximálního počtu IOPS.

  • Vysoká hloubka fronty 256.
  • Malý blok o velikosti 4 kB.
  • Více vláken provádějících náhodné zápisy.

Spuštěním následujícího příkazu spusťte test FIO po dobu 30 sekund.

sudo fio --runtime 30 fioread.ini

Během testování můžete zobrazit počet IOPS čtení, které virtuální počítač a disky Premium poskytují. Jak je znázorněno v následující ukázce, Standard_D8ds_v4 virtuální počítač poskytuje více než 77 000 IOPS čtení. Jedná se o kombinaci výkonu disku a mezipaměti.
Snímek obrazovky s počtem doručovaných virtuálních počítačů s IOPS zápisu a disků SSD úrovně Premium ukazuje, že čtení je 78,6 kB.

Maximální počet vstupně-výstupních operací čtení a zápisu za sekundu

Vytvořte soubor úlohy s následujícími specifikacemi, abyste získali maximální kombinovaný počet vstupně-výstupních operací čtení a zápisu za sekundu. Pojmenujte ji "fioreadwrite.ini".

[global]
size=30g
direct=1
iodepth=128
ioengine=libaio
bs=4k
numjobs=4

[reader1]
rw=randread
directory=/mnt/readcache

[writer1]
rw=randwrite
directory=/mnt/nocache
rate_iops=3200

Všimněte si následujících klíčových věcí, které jsou v souladu s pokyny pro návrh probíranými v předchozích částech. Tyto specifikace jsou nezbytné pro dosažení maximálního počtu IOPS.

  • Vysoká hloubka fronty 128.
  • Malý blok o velikosti 4 kB.
  • Více vláken provádějících náhodná čtení a zápisy.

Spuštěním následujícího příkazu spusťte test FIO po dobu 30 sekund.

sudo fio --runtime 30 fioreadwrite.ini

Během testování můžete zobrazit počet kombinovaných vstupně-výstupních operací čtení a zápisu, které virtuální počítač a disky Premium poskytují. Jak je znázorněno v následující ukázce, Standard_D8ds_v4 virtuální počítač poskytuje více než 90 000 kombinovaných IOPS čtení a zápisu. Jedná se o kombinaci výkonu disku a mezipaměti.
Kombinované IOPS čtení a zápisu ukazuje, že počet čtení je 78,3 kB a zápis 12,6 00 IOPS.

Maximální kombinovaná propustnost

Pokud chcete dosáhnout maximální kombinované propustnosti čtení a zápisu, použijte větší velikost bloku a velkou hloubku fronty s několika vlákny provádějícími čtení a zápisy. Můžete použít velikost bloku 64 kB a hloubku fronty 128.

Další kroky

Pokračujte k našemu článku o návrhu pro zajištění vysokého výkonu.

V tomto článku vytvoříte kontrolní seznam podobný stávající aplikaci pro prototyp. Pomocí nástrojů pro srovnávací testy můžete simulovat úlohy a měřit výkon prototypové aplikace. Tímto způsobem můžete určit, která nabídka disků může odpovídat požadavkům vaší aplikace na výkon nebo ji překročit. Pak můžete implementovat stejné pokyny pro produkční aplikaci.