Inzicht in de methodologie voor prestatietests in Azure NetApp Files
Het benchmarkhulpprogramma dat in deze tests wordt gebruikt, heet Flexible I/O Tester (FIO).
Bij het testen van de randen van prestatielimieten voor opslag, moet het genereren van werkbelastingen maximaal worden geparallelliseerd om de maximaal mogelijke resultaten te bereiken.
Dat betekent:
- één, aan veel clients
- meerdere CPU's
- meerdere threads
- I/O uitvoeren op meerdere bestanden
- netwerkverbindingen met meerdere threads (zoals nconnect)
Het einddoel is om het opslagsysteem zo ver mogelijk te pushen voordat bewerkingen moeten beginnen te wachten totdat andere bewerkingen zijn voltooid. Het gebruik van één client die één netwerkstroom doorkruist, of het lezen/schrijven van/naar een enkel bestand (bijvoorbeeld met behulp van dd of diskspd op één client) levert geen resultaten die wijzen op de mogelijkheden van Azure NetApp Files. In plaats daarvan tonen deze instellingen de prestaties van één bestand, die doorgaans trends met regelsnelheid en/of de QoS-instellingen voor Azure NetApp-bestanden vertonen.
Bovendien moet caching zoveel mogelijk worden geminimaliseerd om nauwkeurige, representatieve resultaten te bereiken van wat de opslag kan bereiken. Caching is echter een zeer echt hulpmiddel voor moderne toepassingen om optimaal te presteren. Deze hebben betrekking op scenario's met caching en met caching omzeild voor willekeurige I/O-werkbelastingen met behulp van randomisatie van de werkbelasting via FIO-opties (met name randrepeat=0
om caching in de opslag te voorkomen en directio om caching van clients te voorkomen).
Over Flexibele I/O-tester
Flexibele I/O-tester (FIO) is een opensource-hulpprogramma voor het genereren van werkbelastingen dat vaak wordt gebruikt voor opslagbenchmarking vanwege het gebruiksgemak en de flexibiliteit bij het definiëren van workloadpatronen. Zie De aanbevelingen voor prestatiebenchmarks voor Azure NetApp Files voor informatie over het gebruik ervan met Azure NetApp Files.
Installatie van FIO
Volg de sectie Binaire pakketten in het FIO README-bestand om te installeren voor het platform van uw keuze.
FIO-voorbeelden voor IOPS
In de FIO-voorbeelden in deze sectie wordt de volgende installatie gebruikt:
- VM-exemplaargrootte: D32s_v3
- Serviceniveau en grootte van capaciteitspool: Premium / 50 TiB
- Volumequotumgrootte: 48 TiB
In de volgende voorbeelden ziet u de WILLEKEURIGE FIO-lees- en schrijfbewerkingen.
FIO: 8k blokgrootte 100% willekeurige leesbewerkingen
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: 8k blokgrootte 100% willekeurige schrijfbewerkingen
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Benchmarkresultaten
Zie Azure NetApp Files-prestatiebenchmarks voor Linux voor officiële benchmarkresultaten voor de prestaties van FIO in Azure NetApp Files.
FIO-voorbeelden voor bandbreedte
In de voorbeelden in deze sectie worden de FIO-sequentiële lees- en schrijfbewerkingen weergegeven.
FIO: 64k blokgrootte 100% sequentiële leesbewerkingen
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: 64k blokgrootte 100% sequentiële schrijfbewerkingen
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Benchmarkresultaten
Zie Azure NetApp Files-prestatiebenchmarks voor Linux voor officiële benchmarkresultaten voor de prestaties van FIO in Azure NetApp Files.
Opslaan in cache met FIO
FIO kan worden uitgevoerd met specifieke opties om te bepalen hoe een prestatiebenchmark bestanden leest en schrijft. In de benchmarkstests waarbij caching is uitgesloten, werd de FIO-vlag randrepeat=0
gebruikt om caching te voorkomen door een echte willekeurige workload uit te voeren in plaats van een herhaald patroon.
[randrepeat
]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)
randrepeat
Wanneer dit niet is gedefinieerd, stelt het FIO-hulpprogramma standaard de waarde in op 'true', wat betekent dat de gegevens die in de bestanden worden geproduceerd, niet echt willekeurig zijn. Bestandssysteemcaches worden dus niet gebruikt om de algehele prestaties van de workload te verbeteren.
In eerdere benchmarks voor Azure NetApp Files is randrepeat
niet gedefinieerd, dus sommige bestandssysteemcaching is geïmplementeerd. Bij meer actuele tests is deze optie ingesteld op 0 (onwaar) om ervoor te zorgen dat er voldoende willekeurigheid is in de gegevens om bestandssysteemcaches in de Azure NetApp Files-service te voorkomen. Deze wijziging resulteert in iets lagere totale getallen, maar is een nauwkeurigere weergave van wat de opslagservice kan doen wanneer caching wordt overgeslagen.