L'accesso lento ai file tramite VPN invita a considerare l'impostazione multicanale come soluzione, e spesso l'impostazione non ha nulla con cui lavorare. Un solo adattatore virtuale senza RSS non può distribuire il traffico su più canali, qualunque cosa dica la casella. Conta la capacità che SMB vede a entrambe le estremità, non la specifica della NIC fisica del portatile. La trattazione che segue parte da una sessione attiva e risale alla disposizione degli adattatori.

Partite dalla sessione, non dalla specifica della NIC

Verificate prima che la sessione possa usare il multicanale. La funzione appartiene a SMB3, quindi un dialetto più vecchio negoziato con un dispositivo o un server legacy la esclude prima che qualsiasi domanda sull'adattatore diventi rilevante. Poi verificate a quale server il client si è realmente connesso, perché un nome che risolve su un nodo diverso da quello che state ispezionando produce un risultato convincente ma irrilevante.

Get-SmbConnection
Get-SmbClientConfiguration | Select-Object EnableMultichannel
Get-SmbClientNetworkInterface

Il primo comando indica dialetto, server e condivisione su una riga. Il secondo mostra se la funzione è abilitata sul client, e il terzo elenca le interfacce che SMB conosce con le capacità dichiarate. Un adattatore virtuale che non dichiara né RSS né RDMA vi dice in cosa può trasformarsi la disposizione.

Se il dialetto non è SMB3, fermatevi e risolvete prima questa questione. Altrimenti ogni comando successivo descriverà una funzione che non può attivarsi.

Leggete le interfacce del client con onestà

A SMB non importa quale adattatore porti la vostra rotta predefinita; enumera le interfacce che può usare e valuta ciascuna. Un portatile con Wi-Fi, Ethernet e un adattatore VPN può presentare tre interfacce, e solo una di esse può essere raggiungibile per il server con cui state parlando. Le altre sono candidate, non canali.

Leggete le colonne RSS e RDMA invece della colonna della velocità di collegamento. Un adattatore virtuale dichiara spesso una velocità nominale alta senza capacità RSS, e la velocità nominale descrive il collegamento virtuale, non il percorso attraverso internet. Nessuno dei due numeri vi dice quanti canali usa la sessione.

Se l'adattatore non mostra capacità RSS, la correzione supportata appartiene al driver del fornitore VPN, non alle proprietà avanzate della NIC fisica. Spuntare una casella RSS sull'adattatore hardware non cambia nulla di ciò che l'adattatore virtuale espone a SMB.

Separate i canali selezionati dalle candidate scoperte

L'elenco delle connessioni è la parte più spesso letta male. Con le candidate non selezionate incluse, l'output mostra tutto ciò che SMB ha considerato, e non è l'insieme dei canali che trasportano dati. Leggete il flag di selezione e il numero di canali per la coppia di interfacce client e server che vi interessa.

Get-SmbMultichannelConnection -ServerName files.lab.example -IncludeNotSelected
Get-SmbMultichannelConnection -ServerName files.lab.example | Format-List *

Sostituite con il nome del vostro server. La seconda forma stampa le proprietà delle connessioni selezionate, inclusi gli indici delle interfacce e il numero attuale di canali, che è il numero che conta. Più indirizzi scoperti su un adattatore restano un solo adattatore.

Un indirizzo scoperto può anche essere inutilizzabile a causa della politica VPN: può essere un indirizzo di sottorete locale che il tunnel non trasporta, o un indirizzo che il server serve solo su un'altra rete. SMB lo elenca come candidato perché l'interfaccia esiste, non perché il percorso funziona.

Cosa fa l'adattatore VPN alla disposizione

Tre disposizioni meritano di essere distinte, perché solo due possono produrre più di un canale. Un solo adattatore senza RSS dà un canale. Un solo adattatore con RSS può distribuire le connessioni tra i core. Più adattatori utilizzabili possono produrre più canali anche senza RSS, ed è la configurazione che la gente dimentica quando presume che RSS sia obbligatorio.

Layout SMB seesChannels possible
One adapter, no RSSOne
One adapter with RSSSeveral, spread across cores
Two or more usable adaptersSeveral, one path per adapter
Several adapters behind one tunnelSeveral, one shared bottleneck

L'ultima riga è quella che conta su una VPN. I canali che entrano tutti nello stesso tunnel cifrato condividono la capacità del tunnel, la CPU del gateway e il collegamento WAN. Aggiungere lì un canale ridistribuisce il lavoro senza aggiungere capacità, e la misura lo mostrerà.

Mantenete attivi firma e cifratura mentre confrontate, perché disattivarli cambia ciò che state misurando. Un risultato di prestazioni che dipende dalla disattivazione di un'impostazione di sicurezza non è un risultato che potete distribuire.

Misurate il carico che è davvero lento

Nominate il carico prima di cambiare qualcosa: una grande copia sequenziale, molti file piccoli in una directory o un'applicazione che apre e chiude handle. Il multicanale può aiutare il primo caso quando esistono percorsi indipendenti reali, e fa molto poco per il terzo, perché lì il costo sono andate e ritorni dipendenti e non la larghezza di banda.

Rilevate una linea di base con la disposizione attuale, cambiate una cosa e rilevate di nuovo con lo stesso insieme di file e alla stessa ora del giorno. Annotate il numero di percorsi selezionati accanto al valore, così un lettore successivo può capire se il cambiamento ha modificato la disposizione o solo il carico.

Se i canali non sono cambiati, la questione delle prestazioni è altrove: il costo di cifratura del tunnel, la latenza del percorso o il disco e la CPU del server stesso. Vale la pena misurarli prima di aggiungere un altro adattatore a un portatile che ne ha già abbastanza.

Articoli correlati