Comprendere la metodologia di test delle prestazioni in Azure NetApp Files
Lo strumento di benchmark usato in questi test è denominato Tester di I/O flessibile (FIO).
Quando si testano i bordi dei limiti di prestazioni per l'archiviazione, la generazione del carico di lavoro deve essere altamente parallelizzata per ottenere i risultati massimi possibili.
Ciò significa che:
- uno, a molti clienti
- più CPU
- più thread
- esecuzione di operazioni di I/O su più file
- connessioni di rete multithread (ad esempio nconnect)
L'obiettivo finale è eseguire il push del sistema di archiviazione per quanto possibile prima che le operazioni inizino ad attendere il completamento di altre operazioni. L'uso di un singolo client che attraversa un singolo flusso di rete o di lettura/scrittura da/a un singolo file (ad esempio, l'uso di dd o diskspd in un singolo client) non fornisce risultati indicativi della funzionalità di Azure NetApp Files. Queste configurazioni mostrano invece le prestazioni di un singolo file, che in genere si presentano tendenze con velocità di riga e/o le impostazioni QoS di Azure NetApp File.
Inoltre, la memorizzazione nella cache deve essere ridotta al minimo il più possibile per ottenere risultati accurati e rappresentativi di ciò che l'archiviazione può raggiungere. Tuttavia, la memorizzazione nella cache è uno strumento molto reale per le applicazioni moderne per ottenere prestazioni ottimali. Questi scenari riguardano alcuni scenari con memorizzazione nella cache e la memorizzazione nella cache ignorati per carichi di lavoro di I/O casuali usando la casualizzazione del carico di lavoro tramite opzioni FIO (in particolare, randrepeat=0
per impedire la memorizzazione nella cache nell'archiviazione e directio per impedire la memorizzazione nella cache del client).
Informazioni sul tester di I/O flessibile
Il tester di I/O flessibile è uno strumento di generazione di carichi di lavoro open source comunemente usato per il benchmarking dell'archiviazione grazie alla facilità d'uso e alla flessibilità nella definizione dei modelli di carico di lavoro. Per informazioni sull'uso con Azure NetApp Files, vedere Raccomandazioni sui test del benchmark delle prestazioni per Azure NetApp Files.
Installazione di FIO
Seguire la sezione Pacchetti binari nel file FIO README per l’installazione sulla piattaforma preferita.
Esempi di FIO per operazioni di I/O al secondo
Gli esempi FIO in questa sezione usano la configurazione seguente:
- Dimensioni dell'istanza della macchina virtuale: D32s_v3
- Livello di servizio e dimensioni del pool di capacità: Premium / 50 TiB
- Dimensioni quota volume: 48 TiB
Gli esempi seguenti illustrano le letture e le scritture casuali FIO.
FIO: dimensioni blocco 8k 100% letture casuali
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: dimensioni blocco 8k 100% scritture casuali
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Risultati benchmark
Per i risultati ufficiali del benchmark per le prestazioni di FIO in Azure NetApp Files, vedere Benchmark delle prestazioni di Azure NetApp Files per Linux.
Esempi FIO per la larghezza di banda
Gli esempi in questa sezione illustrano le letture e le scritture sequenziali FIO.
FIO: dimensioni blocco 64k 100% letture sequenziali
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: dimensioni blocco 64k 100% scritture sequenziali
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Risultati benchmark
Per i risultati ufficiali del benchmark per le prestazioni di FIO in Azure NetApp Files, vedere Benchmark delle prestazioni di Azure NetApp Files per Linux.
Memorizzazione nella cache con FIO
FIO può essere eseguito con opzioni specifiche per controllare il modo in cui un benchmark delle prestazioni legge e scrive i file. Nei test di benchmark con memorizzazione nella cache esclusa, il flag randrepeat=0
FIO è stato usato per evitare la memorizzazione nella cache eseguendo un vero carico di lavoro casuale anziché un modello ripetuto.
[randrepeat
]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)
Per impostazione predefinita, quando randrepeat
non è definito, lo strumento FIO imposta il valore su "true", ovvero i dati prodotti nei file non sono realmente casuali. Di conseguenza, le cache del file system non vengono usate per migliorare le prestazioni complessive del carico di lavoro.
Nei benchmark precedenti per Azure NetApp Files randrepeat
non è stato definito, quindi è stata implementata la memorizzazione nella cache del file system. Nei test più aggiornati, questa opzione è impostata su "0" (false) per garantire una casualità adeguata nei dati per evitare cache del file system nel servizio Azure NetApp Files. Questa modifica comporta un numero complessivo leggermente inferiore, ma è una rappresentazione più accurata di ciò che il servizio di archiviazione è in grado di quando la memorizzazione nella cache viene ignorata.