Condividi tramite


Migliorare le prestazioni per le condivisioni file di Azure SMB

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 Sì No
Microsoft.Storage Con provisioning v2 HDD (standard) Della zona Sì No
Microsoft.Storage Con provisioning v2 HDD (standard) Geografica Sì No
Microsoft.Storage Con provisioning v2 HDD (standard) GeoZone (GZRS) Sì No
Microsoft.Storage Con provisioning v1 SSD (Premium) Locale Sì No
Microsoft.Storage Con provisioning v1 SSD (Premium) Della zona Sì No
Microsoft.Storage Pagamento in base al consumo HDD (standard) Locale Sì No
Microsoft.Storage Pagamento in base al consumo HDD (standard) Della zona Sì No
Microsoft.Storage Pagamento in base al consumo HDD (standard) Geografica Sì No
Microsoft.Storage Pagamento in base al consumo HDD (standard) GeoZone (GZRS) Sì No

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 delle condivisioni SSD sono vincolate dalle dimensioni della condivisione fornite, incluse le operazioni di I/O al secondo, la velocità effettiva e i limiti dei singoli file. 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 supporta una larghezza di banda massima di circa 1,86 GiB/sec. L'uscita dalla macchina virtuale (scritture nell'archiviazione) è addebitata a consumo, ma il traffico in ingresso (letture dall'archiviazione) non è addebitato. 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 aumentano la velocità effettiva e hanno una latenza più alta, causando un numero netto di IOPS inferiore. Le dimensioni di I/O inferiori determinano IOPS più elevati, ma comportano un throughput netto e una latenza maggiori. 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 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 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.

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 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:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

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 con i carichi di lavoro multi-thread, i client vedono prestazioni migliorate con SMB Multichannel. 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

  1. Creare una nuova condivisione file SSD o usare una condivisione file SSD esistente.
  2. 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.
  3. Montare una condivisione file nel client.
  4. 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.
  5. A tale scopo, aprire PowerShell come amministratori ed usare il comando seguente: Get-SmbMultichannelConnection |fl
  6. 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 multithread/singolo: per la maggior parte dei casi d'uso in questa categoria, i carichi di lavoro traggono vantaggio dall'abilitazione SMB multicanale, soprattutto se il carico di lavoro ha dimensioni di I/O medie superiori a 16 KiB. 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, è possibile osservare una lieve perdita di prestazioni pari a 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 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 in media una dimensione di I/O maggiore (maggiore di 16 KiB), si possono ottenere 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:

Diagramma delle prestazioni.

Diagramma delle prestazioni della velocità effettiva.

  • 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 è maggiore di 2,7 GiB/s. L'ingresso (o scritture nell'archiviazione) è ancora soggetto ai limiti della macchina virtuale.
  • 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 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:

Diagramma delle prestazioni IOPS.

Diagramma delle prestazioni della velocità effettiva di un singolo file.

  • In una singola scheda di interfaccia di rete con dimensioni di I/O medie maggiori (superiori a 16 KiB), sono stati apportati miglioramenti significativi sia nelle letture che nelle scritture.
  • Per le dimensioni di I/O più piccole, si è verificato un lieve impatto circa del 10% sulle prestazioni 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 SSD

La memorizzazione nella cache dei metadati è un miglioramento per le condivisioni file di Azure SSD che riduce la latenza dei metadati e aumenta i limiti di scalabilità dei metadati. La funzionalità aumenta la coerenza della latenza e le operazioni di I/O al secondo disponibili e aumenta la velocità effettiva della rete.

Questa funzionalità migliora le prestazioni delle API di metadati seguenti. Sia i client Windows che Linux possono usarlo:

  • 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, la funzionalità è disponibile solo per le condivisioni file SSD. Non sono previsti costi aggiuntivi associati all'uso di questa funzionalità. È possibile anche registrarsi per aumentare i limiti degli handle di file per le condivisioni di file SSD (anteprima).

Eseguire la registrazione per la funzionalità di memorizzazione nella cache dei metadati

Per iniziare, eseguire la registrazione per la funzionalità usando il portale di Azure o Azure PowerShell.

  1. Accedere al portale di Azure.
  2. Cercare e selezionare Funzionalità di anteprima.
  3. Selezionare il filtro Tipo e selezionare Microsoft.Storage.
  4. Selezionare Cache dei metadati di File Premium di Azure e quindi selezionare Registra.

Importante

  • 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.
  • Dopo aver registrato AFEC, contattare azfilespreview@microsoft.com per ulteriori istruzioni.

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.

Grafico che mostra la latenza in millisecondi con e senza memorizzazione nella cache dei metadati.

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.

Grafico che mostra le operazioni di I/O al secondo disponibili con e senza memorizzazione nella cache dei metadati.

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.

Grafico che mostra la velocità effettiva di rete con e senza memorizzazione nella cache dei metadati.

Iscriversi per l'aumento dei limiti dei gestori di file (anteprima)

Per aumentare il numero massimo di handle simultanei per file e directory per condivisioni file SMB SSD da 2.000 a 10.000, registrarsi per la funzionalità di anteprima usando il portale di Azure o Azure PowerShell. In caso di domande, inviare una email a azfilespreview@microsoft.com.

  1. Accedere al portale di Azure.
  2. Cercare e selezionare Funzionalità di anteprima.
  3. Selezionare il filtro Tipo e selezionare Microsoft.Storage.
  4. Selezionare Aumento numero massimo di handle aperti di file Premium di Azure e quindi selezionare Registra.

Passaggi successivi