Benchmark-resultat
Nu undersöker vi prestandaresultat för att verifiera de prestandatips som vi diskuterade i föregående lektion. Mer specifikt fokuserar vi på att använda SPEC SFS benchmark suite för att skapa flera trådar som simulerar EDA-produktionsliknande arbetsbelastningar. Dessutom visar vi FIO-resultat för att undersöka vissa prestandametoder.
Översikt över de två benchmark-verktygen
SPEC SFS-sviten är ett standardbranschmått för EDA. En typisk EDA-arbetsbelastning består av funktionella och fysiska faser. Den funktionella fasen driver mestadels slumpmässiga I/O- och filsystemmetadataåtgärder. Den fysiska fasen driver sekventiella läsningar och skrivningar i stora block.
FIO- är ett I/O-verktyg som kan generera konsekventa slumpmässiga eller sekventiella läs-/skrivbelastningar för att jämföra IOPS och dataflödet för ett lagringsmål.
Volymtyper i Azure NetApp Files
Azure NetApp Files innehåller två typer av volymer som kan etableras för molndatalagring: vanliga volymer och stora volymer. I följande tabell visas några av de viktigaste skillnaderna mellan de två volymtyperna. Använd den här tabellen som vägledning när du väljer rätt volymtyp för din arbetsbelastning.
Gräns | Vanlig volym | Stor volym |
---|---|---|
Minsta kapacitet | 100 GiB | 50 TiB |
Maxkapacitet | 100 TiB | 500 TiB |
Lägsta servicenivå som stöds | Standard | Standard |
Maximalt observerat dataflöde | 4 500 MiB/s | 10 240 MiB/s |
Högsta uppmätta läs-IOPS | ~200 000 | ~700 000 |
Högsta observerade skriv-IOPS | ~135 000 | ~474 000 |
Benchmark-resultat från SPEC EDA-verktyget för vanliga volymer
Graferna i det här avsnittet visar I/O- och svarstidskurvorna. De undersöker några kombinationer av följande prestandametoder:
nocto,actimeo=600
sysctl tuned
nconnect=16
När alla tre ovanstående metoder tillämpas ökar I/O-åtgärderna per sekund och behåller fortfarande låg svarstid (mindre än 1 millisekunder).
Följande diagram visar att NFSv3 presterar bättre än NFSv4.1 för den här typen av arbetsbelastning.
Följande diagram visar att rsize=wsize=262144(256 K)
presterar bättre än andra inställningar.
Benchmark-resultat från SPEC EDA-verktyget för stora volymer
Prestandatröskeltestning utfördes på en enda stor volym med hjälp av SPEC SFS-riktmärket med följande konfiguration:
Konfigurationstyp | Inställning |
---|---|
Operativsystem | RHEL 9.3 / RHEL 8.7 |
Instanstyp | D16s_v5 |
Antal instanser | 10 |
Monteringsalternativ | nocto,actimeo=600,hard,rsize=262144,wsize=262144,vers=3,tcp,noatime,nconnect=8 |
I testerna jämfördes prestandafunktionerna för en stor volym med hjälp av SPEC SFS-benchmark jämfört med en vanlig volym i Azure NetApp Files.
Scenario | I/O-hastighet vid 2 ms | MiB/s på 2ms |
---|---|---|
En vanlig volym | 39 601 | 692 |
En stor volym | 652,260 | 10,030 |
Benchmarkresultat för FIO-verktyget för vanliga volymer
Följande FIO-kommandon jämför IOPS respektive dataflöde.
// FIO commands to benchmark IOPS:
// 8K Random Reads
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// 8K Random Writes
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// FIO commands to benchmark throughput:
// 64K Sequential Reads
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// 64K Sequential Writes
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Följande två diagram visar att när nocto,actimeo=600
, nconnect=16
och sysctl
finjusteras kan Azure NetApp Files uppnå högre IOPS och dataflöde.
Benchmarkresultat för FIO-verktyget för stora volymer
I det här avsnittet beskrivs prestandatrösklar för en enda stor volym med hjälp av FIO-riktmärket. Testerna kördes med följande konfiguration:
Komponent | Konfiguration |
---|---|
Storlek på virtuella Azure-datorer | E32s_v5 |
Gräns för utgående bandbredd för virtuella Azure-datorer | 2000MiB/s (2GiB/s) |
Operativsystem | RHEL 8.4 |
Stor volymstorlek | 101 TiB Ultra (10 240 MiB/s-dataflöde) |
Monteringsalternativ | hard,rsize=65536,wsize=65536,vers=3 OBS! Användning av både 262144 och 65536 hade liknande prestandaresultat. |
256 KiB sekventiell belastning (MiB/s)
Diagrammet representerar en sekventiell arbetsbelastning på 256 KiB och en 1 TiB-arbetsuppsättning. Den visar att en enda stor Azure NetApp Files-volym kan hantera mellan cirka 8 518 MiB/s rena sekventiella skrivningar och 9 970 MiB/s rena sekventiella läsningar.
8-KiB slumpmässig arbetsbelastning (IOPS)
Diagrammet representerar en slumpmässig arbetsbelastning med 8 KiB och en 1 TiB-arbetsuppsättning. Diagrammet visar att en stor Azure NetApp Files-volym kan hantera mellan cirka 474 000 rena slumpmässiga skrivningar och cirka 709 000 rena slumpmässiga läsningar.