SMB multicanal por VPN: o que o cliente realmente usa
O SMB multicanal por VPN acrescenta poucos canais: leia as interfaces do cliente, as ligações selecionadas e o dialeto SMB antes de culpar o túnel pelos ficheiros lentos.
O acesso lento a ficheiros por VPN leva a considerar a definição multicanal como solução, e muitas vezes a definição não tem com que trabalhar. Um único adaptador virtual sem RSS não consegue repartir o tráfego por vários canais, diga o que disser a caixa de seleção. O que importa é a capacidade que o SMB vê nas duas pontas, não a especificação da NIC física do portátil. A explicação abaixo começa numa sessão ativa e recua até à disposição dos adaptadores.
Comece pela sessão, não pela especificação da NIC
Confirme primeiro que a sessão pode sequer usar o multicanal. A funcionalidade pertence ao SMB3, pelo que um dialeto mais antigo negociado com um equipamento ou um servidor antigo a exclui antes de qualquer pergunta sobre o adaptador ser relevante. Depois confirme a que servidor o cliente se ligou realmente, porque um nome que resolve para um nó diferente do que está a inspecionar produz um resultado convincente mas irrelevante.
Get-SmbConnection
Get-SmbClientConfiguration | Select-Object EnableMultichannel
Get-SmbClientNetworkInterface
O primeiro comando indica o dialeto, o servidor e a partilha numa linha. O segundo mostra se a funcionalidade está ativa no cliente, e o terceiro lista as interfaces que o SMB conhece com as capacidades declaradas. Um adaptador virtual que não declara RSS nem RDMA diz-lhe no que a disposição se pode tornar.
Se o dialeto não for SMB3, pare e resolva essa questão primeiro. Caso contrário, cada comando posterior descreverá uma funcionalidade que não pode ativar-se.
Leia as interfaces do cliente com honestidade
Ao SMB não importa qual adaptador transporta a rota predefinida; enumera as interfaces que pode usar e avalia cada uma. Um portátil com Wi-Fi, Ethernet e um adaptador VPN pode apresentar três interfaces, e só uma delas pode estar acessível para o servidor com quem fala. As outras são candidatas, não canais.
Leia as colunas RSS e RDMA em vez da coluna de velocidade da ligação. Um adaptador virtual declara frequentemente uma velocidade nominal alta sem capacidade RSS, e a velocidade nominal descreve a ligação virtual, não o caminho pela internet. Nenhum dos dois números lhe diz quantos canais a sessão usa.
Se o adaptador não mostrar capacidade RSS, a correção suportada pertence ao controlador do fornecedor de VPN, não às propriedades avançadas da NIC física. Marcar uma caixa RSS no adaptador de hardware não altera nada do que o adaptador virtual expõe ao SMB.
Separe os canais selecionados das candidatas descobertas
A lista de ligações é a parte mais frequentemente mal lida. Com as candidatas não selecionadas incluídas, a saída mostra tudo o que o SMB considerou, e isso não é o conjunto de canais que transportam dados. Leia o indicador de seleção e o número de canais para o par concreto de interfaces de cliente e servidor que lhe interessa.
Get-SmbMultichannelConnection -ServerName files.lab.example -IncludeNotSelected
Get-SmbMultichannelConnection -ServerName files.lab.example | Format-List *
Substitua pelo nome do seu servidor. A segunda forma imprime as propriedades das ligações selecionadas, incluindo os índices de interface e o número atual de canais, e é esse o número que importa. Vários endereços descobertos num adaptador continuam a ser um adaptador.
Um endereço descoberto também pode ser inutilizável pela política de VPN: pode ser um endereço de sub-rede local que o túnel não transporta, ou um endereço que o servidor só serve noutra rede. O SMB lista-o como candidato porque a interface existe, não porque o caminho funciona.
O que o adaptador VPN faz à disposição
Vale a pena distinguir três disposições, porque só duas podem produzir mais de um canal. Um único adaptador sem RSS dá um canal. Um único adaptador com RSS pode repartir as ligações pelos núcleos. Vários adaptadores utilizáveis podem produzir vários canais mesmo sem RSS, e é essa a configuração que as pessoas esquecem quando assumem que o RSS é obrigatório.
| Layout SMB sees | Channels possible |
|---|---|
| One adapter, no RSS | One |
| One adapter with RSS | Several, spread across cores |
| Two or more usable adapters | Several, one path per adapter |
| Several adapters behind one tunnel | Several, one shared bottleneck |
A última linha é a que importa por VPN. Os canais que entram todos no mesmo túnel cifrado partilham o débito do túnel, a CPU do gateway e a ligação WAN. Acrescentar ali um canal redistribui trabalho sem acrescentar capacidade, e a medição irá mostrá-lo.
Mantenha a assinatura e a cifragem ativas enquanto compara, porque desativá-las altera o que está a medir. Um resultado de desempenho que depende de desativar uma definição de segurança não é um resultado que possa implementar.
Meça a carga que é realmente lenta
Nomeie a carga antes de mudar algo: uma grande cópia sequencial, muitos ficheiros pequenos num diretório ou uma aplicação que abre e fecha identificadores. O multicanal pode ajudar o primeiro caso quando existem caminhos independentes reais, e faz muito pouco pelo terceiro, porque aí o custo são viagens de ida e volta dependentes e não a largura de banda.
Registe uma linha de base com a disposição atual, mude uma coisa e registe novamente com o mesmo conjunto de ficheiros e à mesma hora do dia. Anote o número de caminhos selecionados ao lado do valor, para que um leitor posterior possa saber se a alteração mudou a disposição ou apenas a carga.
Se os canais não mudaram, a questão de desempenho está noutro lugar: o custo de cifragem do túnel, a latência do caminho ou o disco e a CPU do próprio servidor. Vale a pena medi-los antes de acrescentar outro adaptador a um portátil que já tem suficientes.