L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Migliorare le prestazioni per le condivisioni file di Azure SMB
Articolo
23/04/2025
Questo articolo illustra come migliorare le prestazioni per le condivisioni file SMB di Azure SSD (Premium), tra cui l'uso di SMB multicanale e la memorizzazione nella cache dei metadati.
Si applica a
Modello di gestione
Modello di fatturazione
Livello supporti
Ridondanza
Piccole e Medie Imprese (PMI)
NFS
Microsoft.Storage
Con provisioning v2
HDD (standard)
Locale
Microsoft.Storage
Con provisioning v2
HDD (standard)
Della zona
Microsoft.Storage
Con provisioning v2
HDD (standard)
Geografica
Microsoft.Storage
Con provisioning v2
HDD (standard)
GeoZone (GZRS)
Microsoft.Storage
Con provisioning v1
SSD (Premium)
Locale
Microsoft.Storage
Con provisioning v1
SSD (Premium)
Della zona
Microsoft.Storage
Pagamento in base al consumo
HDD (standard)
Locale
Microsoft.Storage
Pagamento in base al consumo
HDD (standard)
Della zona
Microsoft.Storage
Pagamento in base al consumo
HDD (standard)
Geografica
Microsoft.Storage
Pagamento in base al consumo
HDD (standard)
GeoZone (GZRS)
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 SSD sono vincolate dalle dimensioni della condivisione di cui è stato effettuato il provisioning, incluse operazioni di I/O al secondo e velocità effettiva e limiti di file singoli. Per informazioni dettagliate, vedere Informazioni sul modello di provisioning v1.
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 circa 1,86 GiB/c; l'uscita dalla macchina virtuale (scritture nell'archiviazione) è a consumo. L'ingresso (letture da archiviazione) non lo è. 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. Scartare 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.
La relazione tra IOPS, velocità effettiva e dimensioni di 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 maggiori, causando un numero inferiore di IOPS netti. Le dimensioni di I/O inferiori determinano maggiori IOPS, ma comportano una larghezza di banda effettiva inferiore e latenze più alte. 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. Azure Files supporta SMB Multicanale per le condivisioni di file SSD nei 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 altri costi 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 di banda su più NIC e utilizzando 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 file SSD. 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.
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 SSD. Non disponibile per le condivisioni di file HDD di Azure.
Supportato solo nei client che usano SMB 3.1.1. Assicurarsi che i sistemi operativi client SMB siano aggiornati ai livelli raccomandati.
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:
Se SMB Multicanale non è abilitato nell'account di archiviazione di Azure, fare riferimento a Stato Multicanale SMB.
Disabilitare 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 SSD o usare una condivisione file SSD 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.
Genera carico con la tua applicazione.
Uno strumento di copia, ad esempio robocopy /MT, o qualsiasi strumento di performance, ad esempio Diskspd per leggere/scrivere file, può generare carico.
A tale scopo, aprire PowerShell come amministratori ed usare il comando seguente: Get-SmbMultichannelConnection |fl
Cercare le proprietà MaxChannels e CurrentChannels.
Confronto delle prestazioni
Esistono due categorie di modelli di carico di lavoro di lettura/scrittura: a thread singolo e multiplo. 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 è a thread multiplo e distribuisce il carico di lavoro su più file, in modo da osservare miglioramenti significativi delle prestazioni con SMB multicanale.
File multipli/thread multiplo: a seconda del modello di carico di lavoro, si dovrebbe notare 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 migliori.
File singolo/thread multiplo: 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 > ~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, è ideale disabilitare SMB Multicanale, con un'unica eccezione. Se il carico di lavoro a thread singolo può distribuire il carico tra più file e utilizza una dimensione di I/O media maggiore (> 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.
File multipli/thread 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 NIC, per le letture, è stato osservato un aumento delle prestazioni di 2x-3x e per le scritture, guadagni di 3x-4x in termini sia di IOPS sia di velocità effettiva.
SMB Multichannel ha permesso a IOPS e throughput di raggiungere i limiti delle macchine virtuali anche con una singola scheda di rete e il limite di quattro canali.
Poiché l'uscita (o le letture nell'archiviazione) non è a consumo, la velocità effettiva di lettura è riuscita a superare il limite pubblicato della macchina virtuale di circa 1,86 GiB/s. Il test ottenuto >è 2,7 GiB/s. L'ingresso (o scritture nell'archiviazione) è ancora soggetto ai limiti delle macchine virtuali.
La distribuzione del carico su più file ha consentito miglioramenti sostanziali.
Carichi di lavoro con file singolo/thread multiplo con SMB multicanale
Il caricamento è stato generato su un singolo file di 128 GiB. Con SMB multicanale abilitato, il test di aumento con file singolo/thread multiplo 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, c'è stato un leggero 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à.
Memorizzazione nella cache dei metadati per condivisioni file SSD
La memorizzazione nella cache dei metadati è un miglioramento per le condivisioni file di Azure SSD finalizzate a migliorare quanto segue:
Ridurre la latenza dei metadati
Limiti di scalabilità dei metadati aumentati
Aumentare la coerenza della latenza, le operazioni di I/O al secondo disponibili e aumentare la velocità effettiva della rete
Questa funzionalità migliora le API di metadati seguenti e può essere usata dai client Windows e Linux:
Crea
Apri
Chiusura
Elimina
Attualmente questa funzionalità è disponibile solo per le condivisioni file SSD. 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.
Selezionare il filtro Tipo e selezionare Microsoft.Storage.
Selezionare Cache dei metadati di File Premium di Azure e quindi selezionare Registra.
Per registrare la sottoscrizione con Azure PowerShell, eseguire i comandi seguenti. Sostituire <your-subscription-id> e <your-tenant-id> con valori personalizzati.
Anche se è elencato sotto Funzionalità di anteprima, Microsoft rispetta gli SLA di GA e ben presto lo renderà l'impostazione predefinita per tutti gli account, eliminando la necessità di registrazione.
Occorrono 1-2 giorni affinché gli account vengano onboardati una volta completata la registrazione.
Disponibilità regionale
Aree sostenute
Asia orientale
Australia centrale
Australia orientale
Australia sud-orientale
Brasile meridionale
Canada centrale
Canada orientale
Francia centrale
Germania centro-occidentale
India centrale
India meridionale
India occidentale
Italia settentrionale
Jio India occidentale
Corea meridionale
Messico centrale
Norvegia orientale
Polonia centrale
Qatar Centrale
Sudafrica settentrionale
Spagna centrale
Svezia centrale
Svizzera settentrionale
Emirati Arabi Uniti settentrionali
Stati Uniti meridionali
Stati Uniti occidentali 2
Stati Uniti occidentali 3
Stati Uniti centro-occidentali
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.
Informazioni sugli obiettivi di scalabilità e prestazioni per File di Azure e Sincronizzazione file di Azure, tra cui archiviazione di condivisioni file, operazioni di I/O al secondo e velocità effettiva.
Risolvere i problemi di prestazioni con le condivisioni file di Azure e individuare potenziali cause e soluzioni alternative associate per questi problemi.
Informazioni sui fattori che possono influire sulle prestazioni della condivisione file di Azure, ad esempio operazioni di I/O al secondo, velocità effettiva, latenza e profondità della coda e come ottimizzare le prestazioni per il carico di lavoro.
Informazioni sulle raccomandazioni per l'uso di directory di grandi dimensioni nelle condivisioni file di Azure montate nei client Linux, tra cui opzioni di montaggio, comandi e operazioni.
Scopri come interpretare i modelli di fatturazione con provisioning e pagamento in base al consumo per Azure Files. Informazioni sul costo totale di proprietà, prenotazioni di archiviazione e crediti burst.
Informazioni sulle condivisioni file ospitate in File di Azure usando il protocollo SMB (Server Message Block), incluse funzionalità, sicurezza e SMB multicanale per condivisioni file Premium.
Informazioni su come migliorare le prestazioni e la velocità effettiva delle condivisioni file di Azure NFS su larga scala, inclusa l'opzione di montaggio nconnect per i client Linux.
Informazioni su come pianificare una distribuzione di File di Azure. È possibile montare direttamente una condivisione file di Azure SMB o NFS oppure memorizzare nella cache condivisioni file di Azure SMB in locale con Sincronizzazione file di Azure.
Informazioni sulle prestazioni dei dischi delle macchine virtuali di Azure e su come abilitare la memorizzazione nella cache per ottimizzare l'accesso in lettura e in scrittura allo risorsa di archiviazione.