Förstå metodiken för prestandatestning i Azure NetApp Files
Benchmark-verktyget som används i dessa tester kallas flexibel I/O-testare (FIO).
När du testar kanterna på prestandagränserna för lagring måste arbetsbelastningsgenereringen vara mycket parallelliserad för att uppnå maximalt möjliga resultat.
Det innebär:
- en, till många klienter
- flera processorer
- flera trådar
- utföra I/O till flera filer
- nätverksanslutningar med flera trådar (till exempel nconnect)
Slutmålet är att push-överföra lagringssystemet så långt det kan gå innan åtgärderna måste börja vänta tills andra åtgärder har slutförts. Användning av en enskild klient som passerar ett enda nätverksflöde eller läser/skriver från/till en enskild fil (till exempel med hjälp av dd eller diskspd på en enda klient) ger inte resultat som tyder på Azure NetApp Files kapacitet. I stället visar de här konfigurationerna prestanda för en enskild fil, som vanligtvis trendar med linjehastighet och/eller QoS-inställningar för Azure NetApp-fil.
Dessutom måste cachelagring minimeras så mycket som möjligt för att uppnå korrekta, representativa resultat av vad lagringen kan åstadkomma. Cachelagring är dock ett mycket verkligt verktyg för att moderna program ska fungera som bäst. Dessa omfattar scenarier med viss cachelagring och med cachelagring som kringgås för slumpmässiga I/O-arbetsbelastningar med hjälp av slumpmässiga arbetsbelastningar via FIO-alternativ (specifikt randrepeat=0
för att förhindra cachelagring på lagringen och directio för att förhindra klientcachelagring).
Om flexibel I/O-testare
Flexibel I/O-testare (FIO) är ett öppen källkod verktyg för arbetsbelastningsgenerering som ofta används för prestandamätning av lagring på grund av dess användarvänlighet och flexibilitet när det gäller att definiera arbetsbelastningsmönster. Information om dess användning med Azure NetApp Files finns i Prestandatestrekommendationer för Azure NetApp Files.
Installation av FIO
Följ avsnittet Binära paket i FIO README-filen för att installera för valfri plattform.
FIO-exempel för IOPS
FIO-exemplen i det här avsnittet använder följande konfiguration:
- Vm-instansstorlek: D32s_v3
- Kapacitetspoolens tjänstnivå och storlek: Premium/50 TiB
- Volymkvotstorlek: 48 TiB
I följande exempel visas slumpmässiga FIO-läsningar och skrivningar.
FIO: 8k blockstorlek 100 % slumpmässiga läsningar
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: 8k blockstorlek 100 % slumpmässiga skrivningar
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Benchmark-resultat
Officiella prestandaresultat för hur FIO presterar i Azure NetApp Files finns i Prestandamått för Azure NetApp Files för Linux.
FIO-exempel för bandbredd
Exemplen i det här avsnittet visar FIO-sekventiella läsningar och skrivningar.
FIO: 64k blockstorlek 100 % sekventiella läsningar
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: 64k blockstorlek 100 % sekventiella skrivningar
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Benchmark-resultat
Officiella prestandaresultat för hur FIO presterar i Azure NetApp Files finns i Prestandamått för Azure NetApp Files för Linux.
Cachelagring med FIO
FIO kan köras med specifika alternativ för att styra hur ett prestandatest läser och skriver filer. I benchmark-testerna med cachelagring utesluten användes FIO-flaggan randrepeat=0
för att undvika cachelagring genom att köra en verklig slumpmässig arbetsbelastning i stället för ett upprepat mönster.
[randrepeat
]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)
Som standard, när randrepeat
inte har definierats, anger FIO-verktyget värdet till "true", vilket innebär att data som produceras i filerna inte är slumpmässiga. Därför används inte filsystemcacheminnen för att förbättra arbetsbelastningens övergripande prestanda.
I tidigare benchmarks för Azure NetApp Files randrepeat
definierades inte, så viss cachelagring av filsystem implementerades. I mer aktuella tester är det här alternativet inställt på "0" (falskt) för att säkerställa att det finns tillräcklig slumpmässighet i data för att undvika filsystemcacheminnen i Azure NetApp Files-tjänsten. Den här ändringen resulterar i något lägre totala siffror, men är en mer exakt representation av vad lagringstjänsten kan göra när cachelagring kringgås.