Srovnávací test disku
Platí pro: ✔️ Virtuální počítače s Windows s Linuxem ✔️ ✔️ – Flexibilní škálovací sady Uniform Scale Sets ✔️
Srovnávací test je proces simulace různých úloh v aplikaci a měření výkonu aplikace pro každou úlohu. Pomocí kroků popsaných v návrhu článku s vysokým výkonem 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 hostujících aplikaci můžete určit úrovně výkonu, které může vaše aplikace dosáhnout s disky SSD úrovně Premium. V tomto článku vám poskytneme příklady srovnávacího testování virtuálního počítače Standard_D8ds_v4 zřízeného pomocí disků SSD úrovně Azure Premium.
Použili jsme běžné srovnávací nástroje DiskSpd a FIO pro Windows a Linux. Tyto nástroje vytváří několik vláken simulujících produkční prostředí, jako je zatížení, a měří výkon systému. Pomocí nástrojů můžete také nakonfigurovat parametry, jako je velikost bloku a hloubka fronty, které se obvykle pro aplikaci nedají změnit. Díky tomu získáte větší flexibilitu pro zajištění maximálního výkonu na virtuálním počítači s vysokým škálováním zřízeným 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 nástroji 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 None a odstraňte je do svazku s názvem NoCacheWrites. Na zbývajícím disku nakonfigurujte ukládání do mezipaměti hostitele jako ReadOnly a vytvořte svazek s názvem CacheReads s tímto diskem. Pomocí tohoto nastavení můžete zobrazit maximální výkon čtení a zápisu z virtuálního počítače Standard_D8ds_v4. 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í dokáže poskytnout vyšší počet vstupně-výstupních operací za sekundu než limit disku. Pokud chcete získat tento maximální výkon čtení z mezipaměti hostitele, musíte nejprve zahřát mezipaměť tohoto disku. Tím se zajistí, že vstupně-výstupní operace čtení, které bude nástroj srovnávacích testů řídit na svazku CacheReads, skutečně dojde k mezipaměti, a ne přímo na disku. Výsledkem přístupů do mezipaměti je více vstupně-výstupních operací za sekundu z jednoho disku s povolenou mezipamětí.
Důležité
Před spuštěním srovnávacích testů je nutné zahřát mezipaměť při každém restartování virtuálního počítače.
DISKSPD
Stáhněte nástroj DISKSP na virtuálním počítači. DISKSPD je nástroj, který si můžete přizpůsobit a vytvořit vlastní syntetické úlohy. Ke spuštění srovnávacích testů použijeme stejné nastavení popsané výše. Specifikace můžete změnit tak, aby testovat 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 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 vstupně-výstupního 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. To se také označuje jako hloubka fronty. V tomto případě se 128 používá ke zdůraznění procesoru.
- -W7200: Určuje dobu trvání doby zahřívání před zahájením měření.
- -d30: Určuje dobu trvání testu, nikoli včetně zahřátí.
- -Sh: Zakažte ukládání do mezipaměti softwarového a hardwarového zápisu (ekvivalentní příkazu -Suw).
Úplný seznam parametrů najdete v úložišti GitHub.
Maximální počet vstupně-výstupních operací zápisu
Pro řízení operací zápisu používáme vysokou hloubku fronty 128, malou velikost bloku 8 kB a čtyři pracovní vlákna. Pracovníci zápisu řídí provoz na svazku NoCacheWrites, který má tři disky s mezipamětí nastavenou na None.
Spusťte následující příkaz po dobu 30 sekund z měření a 30 sekund měření:
diskspd -c200G -w100 -b8K -F4 -r -o128 -W30 -d30 -Sh testfile.dat
Výsledky ukazují, že virtuální počítač Standard_D8ds_v4 poskytuje maximální limit IOPS zápisu 12 800.
Maximální počet vstupně-výstupních operací čtení
Pro řízení operací čtení používáme vysokou hloubku fronty 128, malou velikost bloku čtyř kB a čtyři pracovní vlákna. Čtení pracovních procesů řídí provoz na svazku CacheReads, který má jeden disk s mezipamětí nastavenou na ReadOnly.
Spusťte následující příkaz po dobu dvou hodin rozhřátí a 30 sekund měření:
diskspd -c200G -b4K -F4 -r -o128 -W7200 -d30 -Sh testfile.dat
Výsledky ukazují, že virtuální počítač Standard_D8ds_v4 poskytuje maximální limit IOPS pro čtení 77 000.
Maximální propustnost
Pokud chcete získat maximální propustnost čtení a zápisu, můžete změnit 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. Nabízí flexibilitu výběru 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í. Můžete zadat typ vstupně-výstupních operací, které musí každé pracovní vlákno provádět pomocí souborů úloh. Pro každý scénář jsme vytvořili jeden soubor úlohy znázorněný v následujících příkladech. Specifikace v těchto souborech úloh můžete změnit tak, aby testovat různé úlohy spuštěné ve službě Premium Storage. V příkladech používáme Standard_D8ds_v4 se systémem Ubuntu. Před spuštěním srovnávacích testů použijte stejné nastavení popsané na začátku oddílu srovnávacího testu a 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
Pro řízení operací zápisu a čtyř pracovních vláken používáme čtyři pracovní vlákna pro řízení operací čtení na discích. Pracovníci zápisu řídí provoz na svazku "nocache", který má tři disky s mezipamětí nastavenou na Hodnotu Žádné. Pracovníci pro čtení řídí provoz na svazku "readcache", který má jeden disk s mezipamětí nastavenou na "ReadOnly".
Maximální počet vstupně-výstupních operací 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 ho "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, které jsou popsány v předchozích částech. Tyto specifikacejsouch
- Vysoká hloubka fronty 256.
- Malá velikost bloku 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 testovacího spuštění můžete zjistit počet vstupně-výstupních operací zápisu, které virtuální počítač a disky Premium doručují. Jak je znázorněno v ukázce níže, virtuální počítač Standard_D8ds_v4 poskytuje maximální limit IOPS zápisu 12 800 IOPS.
Maximální počet vstupně-výstupních operací čtení
Vytvořte soubor úlohy s následujícími specifikacemi, abyste získali maximální počet vstupně-výstupních operací čtení za sekundu. Pojmenujte ho "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, které jsou popsány v předchozích částech. Tyto specifikacejsouch
- Vysoká hloubka fronty 256.
- Malá velikost bloku 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 testovacího spuštění můžete zjistit počet vstupně-výstupních operací čtení, které virtuální počítač a disky Premium doručují. Jak je znázorněno v ukázce níže, Standard_D8ds_v4 virtuální počítač poskytuje více než 77 000 vstupně-výstupních operací čtení. Jedná se o kombinaci disku a výkonu mezipaměti.
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é vstupně-výstupní operace čtení a zápisu za sekundu. Pojmenujte ho "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, které jsou popsány v předchozích částech. Tyto specifikacejsouch
- Vysoká hloubka fronty 128.
- Malá velikost bloku 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 testovacích běhů můžete zobrazit počet kombinovaných vstupně-výstupních operací čtení a zápisu za sekundu, které virtuální počítač a disky Premium poskytují. Jak je znázorněno v ukázce níže, Standard_D8ds_v4 virtuální počítač poskytuje více než 90 000 kombinovaných vstupně-výstupních operací čtení a zápisu za sekundu. Jedná se o kombinaci disku a výkonu mezipaměti.
Maximální kombinovaná propustnost
Pokud chcete získat maximální kombinovanou propustnost čtení a zápisu, použijte větší velikost bloku a velkou hloubku fronty s více 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 v našem článku o návrhu pro zajištění vysokého výkonu.
V tomto článku vytvoříte kontrolní seznam podobný existující aplikaci pro prototyp. Pomocí nástrojů srovnávacích testů můžete simulovat úlohy a měřit výkon prototypové aplikace. Tímto způsobem můžete určit, která nabídka disků se může shodovat nebo překročit požadavky na výkon vaší aplikace. Pak můžete implementovat stejné pokyny pro produkční aplikaci.