Migliorare le prestazioni per le condivisioni file di Azure SMB
Questo articolo illustra come migliorare le prestazioni per le condivisioni file di Azure SMB Premium, tra cui SMB multicanale e memorizzazione nella cache dei metadati.
Si applica a
Tipo di condivisione file | SMB | NFS |
---|---|---|
Condivisioni file Standard (GPv2), archiviazione con ridondanza locale/archiviazione con ridondanza della zona | ||
Condivisioni file Standard (GPv2), archiviazione con ridondanza geografica/archiviazione con ridondanza geografica della zona | ||
Condivisioni file Premium (FileStorage), archiviazione con ridondanza locale/archiviazione con ridondanza della zona |
Ottimizzazione delle prestazioni
I suggerimenti seguenti possono aiutare a ottimizzare le prestazioni:
- Assicurarsi che l'account di archiviazione e il client si trovino nella stessa area di Azure per ridurre la latenza di rete.
- Usare applicazioni multithread e distribuire il carico tra più file.
- I vantaggi delle prestazioni di SMB multicanale aumentano con il numero di file che distribuiscono il carico.
- Le prestazioni della condivisione Premium sono vincolate dalle dimensioni delle condivisioni di cui è stato effettuato il provisioning (IOPS/egress/ingress) e dai limiti dei singoli file. Per informazioni dettagliate, vedere Informazioni sul provisioning per le condivisioni file Premium.
- Le prestazioni massime di un singolo client di macchine virtuali sono ancora associate ai limiti delle macchine virtuali. Ad esempio, Standard_D32s_v3 può supportare una larghezza di banda massima di 16.000 MBps (o 2GBps), l'uscita dalla macchina virtuale (scritture nell'archiviazione) è a consumo, il traffico in ingresso (letture dall'archiviazione) no. Le prestazioni della condivisione file sono soggette a limiti di rete del computer, CPU, larghezza di banda di rete disponibile per l'archiviazione interna, dimensioni di I/O, parallelismo e altri fattori.
- Il test iniziale è in genere un riscaldamento. Rimuovere i risultati e ripetere il test.
- Se le prestazioni sono limitate da un singolo client e il carico di lavoro è ancora inferiore ai limiti di condivisione di cui è stato effettuato il provisioning, è possibile ottenere prestazioni più elevate distribuendo il carico su più client.
Relazione tra le dimensioni di I/O al secondo, velocità effettiva e I/O
Velocità effettiva = dimensioni di I/O * operazioni di I/O al secondo
Le dimensioni di I/O più elevate determinano una velocità effettiva più elevata e avranno latenze più elevate, causando un numero inferiore di operazioni di I/O al secondo nette. Le dimensioni di I/O inferiori determinano operazioni di I/O al secondo più elevate, ma comportano una minore velocità effettiva e minori latenze nette. Per altre informazioni, vedere Informazioni sulle prestazioni di File di Azure.
SMB multicanale
SMB multicanale consente a un client SMB di stabilire più connessioni di rete a una condivisione file SMB. File di Azure supporta SMB multicanale nelle condivisioni file Premium per i client Windows. Sul lato servizio, SMB multicanale è ora abilitato per impostazione predefinita per tutti gli account di archiviazione appena creati in tutte le aree di Azure. Non sono previsti costi aggiuntivi per l'abilitazione di SMB multicanale.
Vantaggi
SMB multicanale consente ai client di usare più connessioni di rete che offrono prestazioni migliori riducendo al contempo il costo di proprietà. Un miglioramento delle prestazioni viene ottenuto tramite l'aggregazione della larghezza di banda su più schede di interfaccia di rete e usando il supporto RSS (Receive Side Scaling) per distribuire il carico di I/O tra più CPU.
- maggiore velocità effettiva: più connessioni consentono il trasferimento dei dati su più percorsi in parallelo e quindi vantaggi notevoli per i carichi di lavoro che usano dimensioni di file più grandi con dimensioni di I/O maggiori, e richiedono una velocità effettiva elevata da una singola macchina virtuale o da un set più piccolo di macchine virtuali. Alcuni di questi carichi di lavoro includono contenuti multimediali e intrattenimento per la creazione di contenuti o la transcodifica, genomica e analisi dei rischi dei servizi finanziari.
- IOPS più elevati: la funzionalità RSS della scheda di interfaccia di rete consente una distribuzione efficace del carico tra più CPU con più connessioni. In questo modo è possibile ottenere una scalabilità più elevata delle operazioni di I/O al secondo e un utilizzo effettivo delle CPU della macchina virtuale. Ciò è utile per i carichi di lavoro con dimensioni di I/O ridotte, ad esempio le applicazioni di database.
- Tolleranza di errore di rete: più connessioni attenuano il rischio di interruzioni perché i client non si basano più su una singola connessione.
- Configurazione automatica: quando SMB multicanale è abilitato nei client e sugli account di archiviazione, consente l'individuazione dinamica delle connessioni esistenti e può creare percorsi di connessione aggiuntivi in base alle esigenze.
- Ottimizzazione dei costi: i carichi di lavoro possono ottenere una scalabilità più elevata da una singola macchina virtuale o da un piccolo set di macchine virtuali, durante la connessione alle condivisioni Premium. Ciò potrebbe ridurre il costo totale di proprietà riducendo il numero di macchine virtuali necessarie per l'esecuzione e la gestione di un carico di lavoro.
Per altre informazioni su SMB multicanale, vedere la documentazione di Windows.
Questa funzionalità offre maggiori vantaggi in termini di prestazioni per le applicazioni multithread, ma in genere non aiuta le applicazioni a thread singolo. Per altri dettagli, vedere la sezione Confronto delle prestazioni.
Limiti
SMB multicanale per le condivisioni file di Azure presenta attualmente le restrizioni seguenti:
- Disponibile solo per le condivisioni file di Azure Premium. Non disponibile per le condivisioni file di Azure standard.
- Supportato solo nei client Windows che usano SMB 3.1.1. Assicurarsi che i sistemi operativi client SMB siano patch ai livelli consigliati.
- Attualmente non supportato o consigliato per i client Linux.
- Il numero massimo di canali è quattro. Per informazioni dettagliate, vedere qui.
Impostazione
SMB multicanale funziona solo quando la funzionalità è abilitata sia sul lato client (il client) sia sul lato servizio (l'account di archiviazione di Azure).
Nei client Windows SMB multicanale è abilitato per impostazione predefinita. È possibile verificare la configurazione eseguendo il comando di PowerShell seguente:
Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel
Se SMB multicanale non è abilitato nell'account di archiviazione di Azure, vedere Stato multicanale SMB.
Abilitare SMB multicanale
Nella maggior parte degli scenari, in particolare i carichi di lavoro multithread, i client dovrebbero visualizzare prestazioni migliorate con SMB multicanale. Tuttavia, per alcuni scenari specifici, ad esempio carichi di lavoro a thread singolo o a scopo di test, è possibile disabilitare SMB multicanale. Per altri dettagli, vedere Confronto delle prestazioni e Stato SMB multicanale.
Verificare che SMB multicanale sia configurato correttamente
- Creare una nuova condivisione file Premium o usare una condivisione Premium esistente.
- Verificare che il client supporti SMB multicanale (una o più schede di rete è abilitata per il ridimensionamento lato ricezione). Per altri dettagli, vedere la documentazione di Windows.
- Montare una condivisione file nel client.
- Generare il carico con l'applicazione. Uno strumento di copia, ad esempio robocopy /MT, o qualsiasi strumento di prestazioni, ad esempio Diskspd per leggere/scrivere file, può generare il caricamento.
- A tale scopo, aprire PowerShell come amministratori ed usare il comando seguente:
Get-SmbMultichannelConnection |fl
- Cercare MaxChannels e Proprietà CurrentChannels.
Confronto delle prestazioni
Esistono due categorie di modelli di carico di lavoro di lettura/scrittura: a thread singolo e multithreading. La maggior parte dei carichi di lavoro usa più file, ma potrebbero esserci casi d'uso specifici in cui il carico di lavoro funziona con un singolo file in una condivisione. Questa sezione illustra i diversi casi d'uso e l'impatto sulle prestazioni per ognuno di essi. In generale, la maggior parte dei carichi di lavoro è multithread e distribuisce il carico di lavoro su più file, in modo da osservare miglioramenti significativi delle prestazioni con SMB multicanale.
- File multithread/multipli: a seconda del modello di carico di lavoro, si noterà un miglioramento significativo delle prestazioni in operazioni di I/O in lettura e scrittura su più canali. I miglioramenti delle prestazioni variano da 2x a 4x in termini di operazioni di I/O al secondo, velocità effettiva e latenza. Per questa categoria, SMB multicanale deve essere abilitato per ottenere prestazioni ottimali.
- File multithread/singolo: per la maggior parte dei casi d'uso in questa categoria, i carichi di lavoro trarranno vantaggio dall'abilitazione di SMB multicanale, soprattutto se il carico di lavoro ha una dimensione di I/O media >di circa 16 k. Alcuni scenari di esempio che traggono vantaggio da SMB multicanale sono il backup o il ripristino di un singolo file di grandi dimensioni. Un'eccezione in cui si potrebbe voler disabilitare SMB multicanale è se il carico di lavoro è elevato in operazioni di I/O di piccole dimensioni. In tal caso, si potrebbe osservare una leggera perdita di prestazioni pari a circa il 10%. A seconda del caso d'uso, valutare la possibilità di distribuire il carico tra più file o disabilitare la funzionalità. Per informazioni dettagliate, vedere la sezione Configurazione.
- File a thread singolo/multiplo o singolo file: per la maggior parte dei carichi di lavoro a thread singolo, esistono vantaggi minimi in termini di prestazioni a causa della mancanza di parallelismo. In genere si verifica una lieve riduzione delle prestazioni di circa il 10% se SMB multicanale è abilitato. In questo caso, è consigliabile disabilitare SMB multicanale, con un'unica eccezione. Se il carico di lavoro a thread singolo può distribuire il carico tra più file e usa in una dimensione di I/O media superiore (> circa 16 k), dovrebbero esserci lievi vantaggi in termini di prestazioni da SMB multicanale.
Configurazione dei test delle prestazioni
Per i grafici di questo articolo, è stata usata la configurazione seguente: una singola macchina virtuale D32s v3 Standard con una singola scheda di interfaccia di rete abilitata per RSS con quattro canali. Il caricamento è stato generato usando diskspd.exe, con thread multipli con profondità di I/O pari a 10 e operazioni di I/O casuali con varie dimensioni di I/O.
Dimensione | vCPU | Memoria: GiB | GiB di archiviazione temporanea (disco SSD) | Numero massimo di dischi dati | Velocità effettiva massima di archiviazione temporanea e nella cache: IOPS/MBps (dimensioni della cache in GiB) | Velocità effettiva massima del disco non memorizzato nella cache: IOPS/MBps | Schede di interfaccia di rete max | Larghezza di banda di rete prevista (Mbps) |
---|---|---|---|---|---|---|---|---|
Standard_D32s_v3 | 32 | 128 | 256 | 32 | 64000/512 (800) | 51200/768 | 8 | 16000 |
File Multithread/multipli con SMB multicanale
Il caricamento è stato generato su 10 file con varie dimensioni di I/O. I risultati dei test di scalabilità orizzontale hanno mostrato miglioramenti significativi nei risultati dei test di IOPS e velocità effettiva con SMB multicanale abilitato. I diagrammi seguenti illustrano i risultati:
- In un'unica scheda di interfaccia di rete, per le letture, è stato osservato un aumento delle prestazioni di 2x-3x-3x e per le scritture, i guadagni di 3x-4x in termini di operazioni di I/O al secondo e velocità effettiva.
- SMB multicanale ha consentito operazioni di I/O al secondo e velocità effettiva per raggiungere i limiti delle macchine virtuali anche con una singola scheda di interfaccia di rete e il limite di quattro canali.
- Poiché la velocità effettiva in uscita (o le letture nell'archiviazione) non è a consumo, la velocità effettiva di lettura è stata in grado di superare il limite pubblicato della macchina virtuale di 16.000 Mbps (2 GiB/s). Il test ha ottenuto >2,7 GiB/s. I dati in ingresso (o scritture nell'archiviazione) sono ancora soggetti ai limiti delle macchine virtuali.
- La distribuzione del carico su più file ha consentito miglioramenti sostanziali.
Un comando di esempio usato in questo test è:
diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat
.
Carichi di lavoro con file multithread/singolo con SMB multicanale
Il caricamento è stato generato su un singolo file di 128 GiB. Con SMB multicanale abilitato, il test di aumento delle prestazioni con file multithread/singolo ha mostrato miglioramenti nella maggior parte dei casi. I diagrammi seguenti illustrano i risultati:
- In una singola scheda di interfaccia di rete con dimensioni di I/O medie maggiori (> circa 16 k), sono stati apportati miglioramenti significativi sia nelle letture sia nelle scritture.
- Per dimensioni di I/O più piccole, si è verificato un lieve impatto sulle prestazioni di circa il 10% con SMB multicanale abilitato. Questo problema può essere risolto distribuendo il carico su più file o disabilitando la funzionalità.
- Le prestazioni sono ancora vincolate da limiti di file singoli.
Memorizzazione nella cache dei metadati per condivisioni file SMB Premium
La memorizzazione nella cache dei metadati è un miglioramento per le condivisioni file di Azure SMB Premium finalizzate a migliorare quanto segue:
- Ridurre la latenza dei metadati
- Limiti di scalabilità dei metadati generati
- Aumentare la coerenza della latenza, le operazioni di I/O al secondo disponibili e aumentare la velocità effettiva della rete
Questa funzionalità di anteprima migliora le API di metadati seguenti e può essere usata dai client Windows e Linux:
- Creazione
- Si apra
- Chiusura
- Elimina
Attualmente questa funzionalità di anteprima è disponibile solo per le condivisioni file SMB Premium (condivisioni file nel tipo di account di archiviazione FileStorage). Non sono previsti costi aggiuntivi associati all'uso di questa funzionalità.
Registrarsi per la funzionalità
Per iniziare, eseguire la registrazione per la funzionalità usando il portale di Azure o Azure PowerShell.
- Accedere al portale di Azure.
- Cercare e selezionare Funzionalità di anteprima.
- Selezionare il filtro Tipo e selezionare Microsoft.Storage.
- Selezionare Anteprima cache dei metadati di File Premium di Azure e quindi selezionare Registra.
Importante
Consentire l'onboarding degli account da 1 a 2 giorni al termine della registrazione.
Disponibilità a livello di area
Attualmente l'anteprima della memorizzazione nella cache dei metadati è disponibile solo nelle aree di Azure seguenti: Per richiedere supporto per aree aggiuntive, iscriversi all'anteprima pubblica.
- Asia orientale
- Australia centrale
- Australia orientale
- Australia sud-orientale
- Brasile meridionale
- Canada centrale
- Canada orientale
- Europa settentrionale
- Francia centrale
- Germania centro-occidentale
- Giappone orientale
- Giappone occidentale
- India occidentale Jio
- India centrale
- India meridionale
- India occidentale
- Israele centrale
- Italia settentrionale
- Corea centrale
- Corea meridionale
- Messico centrale
- Norvegia orientale
- Polonia Centrale
- Qatar centrale
- Spagna centrale
- Svezia centrale
- Svizzera settentrionale
- Emirati Arabi Uniti settentrionali
- Regno Unito occidentale
- Regno Unito meridionale
- Stati Uniti centro-settentrionali
- Stati Uniti centro-meridionali
- Stati Uniti centro-occidentali
- Stati Uniti occidentali 2
- Stati Uniti occidentali 3
Suggerimento
Man mano che si estende il supporto dell'area per la funzionalità Cache dei metadati, gli account di archiviazione file Premium in tali aree verranno eseguiti automaticamente per tutte le sottoscrizioni registrate con la funzionalità Memorizzazione nella cache dei metadati.
Miglioramenti delle prestazioni con la memorizzazione nella cache dei metadati
La maggior parte dei carichi di lavoro o dei modelli di utilizzo che contengono metadati può trarre vantaggio dalla memorizzazione nella cache dei metadati. Per determinare se il carico di lavoro contiene metadati, è possibile usare Monitoraggio di Azure per suddividere le transazioni in base alla dimensione API.
I carichi di lavoro e i modelli di utilizzo tipici dei metadati includono:
- Servizi Web/app
- Attività DevOps
- Indicizzazione/processi batch
- Desktop virtuali con home directory o altri carichi di lavoro che interagiscono principalmente con molti file, directory o handle di piccole dimensioni
I diagrammi seguenti illustrano i potenziali risultati.
Ridurre la latenza dei metadati
Memorizzando nella cache i percorsi di file e directory per ricerche future, la memorizzazione nella cache dei metadati può ridurre la latenza nei file e nelle directory a cui si accede di frequente del 30% o più per i carichi di lavoro con un numero elevato di metadati su larga scala.
Aumentare le operazioni di I/O al secondo disponibili
La memorizzazione nella cache dei metadati può aumentare le operazioni di I/O al secondo disponibili di oltre il 60% per i carichi di lavoro pesanti di metadati su larga scala.
Aumentare la velocità effettiva della rete
La memorizzazione nella cache dei metadati può aumentarela velocità effettiva di rete di oltre il 60% per i carichi di lavoro pesanti di metadati su larga scala.
Passaggi successivi
- Controllare lo stato di SMB multicanale
- Vedere la documentazione di Windows per SMB multicanale