Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✔️ Compartilhamentos de arquivos do Azure SMB
Este artigo explica como pode melhorar o desempenho das partilhas de ficheiros do Azure SSD (premium) SMB, incluindo a utilização de SMB Multichannel e cache de metadados.
Otimizar o desempenho
As dicas a seguir podem ajudá-lo a otimizar o desempenho:
- Certifique-se de que sua conta de armazenamento e seu cliente estejam na mesma região do Azure para reduzir a latência da rede.
- Utilize aplicações com múltiplos encadeamentos e distribua a carga por vários ficheiros.
- Os benefícios de desempenho do SMB Multichannel aumentam com o número de arquivos distribuindo a carga.
- O desempenho do compartilhamento SSD é limitado pelo tamanho do compartilhamento provisionado, incluindo IOPS e taxa de transferência, e limites de arquivo único. Para obter detalhes, consulte Noções básicas sobre o modelo v1 de provisionamento.
- O desempenho máximo de um único cliente de máquina virtual (VM) ainda está limitado aos limites da VM. Por exemplo, Standard_D32s_v3 suporta uma largura de banda máxima de aproximadamente 1,86 GiB/seg. A entrada (escrita para armazenamento) é medida, mas a saída (leitura a partir do armazenamento) não é. O desempenho do compartilhamento de arquivos está sujeito aos limites de rede da máquina, CPUs, largura de banda de rede disponível de armazenamento interno, tamanhos de E/S, paralelismo e outros fatores.
- O teste inicial é geralmente um aquecimento. Rejeitar os resultados e repetir o ensaio.
- Se o desempenho for limitado por um único cliente e a carga de trabalho ainda estiver abaixo dos limites de compartilhamento provisionado, você poderá obter um desempenho maior distribuindo a carga por vários clientes.
A relação entre IOPS, taxa de transferência e tamanhos de E/S
Taxa de transferência = tamanho de E/S * IOPS
Tamanhos de E/S mais altos geram maior taxa de transferência e têm latências mais altas, resultando em um número menor de IOPS líquidas. Tamanhos de E/S menores geram IOPS mais altas, mas resultam em menor taxa de transferência líquida e latências. Para saber mais, consulte Compreender o desempenho dos Arquivos do Azure.
SMB Multicanal
SMB Multichannel permite que um cliente SMB estabeleça múltiplas ligações de rede para uma partilha de ficheiros SMB, melhorando o débito e a resiliência. O Azure Files suporta partilhas de ficheiros SMB Multichannel em SSD tanto para clientes SMB Windows como Linux. Para versões suportadas do sistema operativo Linux e configuração detalhada, consulte a secção Linux SMB Multichannel.
Suporte multicanal para SMB no Linux
O Azure Files suporta SMB Multichannel com clientes nativos Linux SMB nas seguintes distribuições:
- Ubuntu 24.04 AKS: 6.8.0-1042
- VMs Ubuntu 24.04: 6.14.0-1017
- VMs Ubuntu 22.04: 6.8.0-1044
- AzLinux 3.0 (VMs e AKS): 6.6.106.1
- RHEL 9.7: 5.14.0-611.5.1.el9_7
- RHEL 10.1: 6.12.0-124.8.1.el10_1
Estes clientes devem estar a executar a pilha de kernel apropriada e os utilitários CIFS que suportem multicanal. O suporte SMB Multichannel no Linux permite uma escalabilidade de desempenho semelhante ao Windows, estabelecendo múltiplas ligações TCP paralelas ao mesmo ponto final de partilha de ficheiros.
Pré-requisitos
Os seguintes são pré-requisitos para usar SMB Multichannel com Linux.
- Kernel com suporte multicanal SMB ativado (ver suporte Linux SMB Multicanal)
- SMB 3.1.1
- Porta 445/TCP aberta entre o cliente e o endpoint Azure Files
- Certifique-se de que a funcionalidade de escalonamento do lado do recebimento (RSS) está ativada no lado do cliente para suporte a múltiplas filas.
Comando de montagem exemplo
Segue-se um exemplo de comando mount para usar SMB Multichannel com Linux.
mount -t cifs //<storageaccount>.file.core.windows.net/<share> /mnt/azfiles \
-o vers=3.1.1,username=<account>,password=<key>,dir_mode=0777,file_mode=0777, \
multiuser,serverino,actimeo=30,max_channels=4
Benefícios
O SMB Multichannel permite que os clientes usem várias conexões de rede que proporcionam maior desempenho enquanto reduzem o custo de propriedade. A melhoria do desempenho é alcançada através da agregação de largura de banda em várias NICs e da utilização do suporte de Receive Side Scaling (RSS) para NICs, para distribuir a carga de entrada/saída entre várias CPUs.
- Maior taxa de transferência: várias conexões permitem que os dados sejam transferidos por vários caminhos em paralelo e, assim, beneficiam significativamente cargas de trabalho que usam tamanhos de arquivo maiores com tamanhos de E/S maiores e exigem alta taxa de transferência de uma única VM ou de um conjunto menor de VMs. Algumas dessas cargas de trabalho incluem mídia e entretenimento para criação ou transcodificação de conteúdo, genômica e análise de risco de serviços financeiros.
- IOPS mais alta: a capacidade RSS da NIC permite uma distribuição de carga eficaz entre várias CPUs com várias conexões. Isso ajuda a obter maior escala de IOPS e utilização eficaz de CPUs VM. Isso é útil para cargas de trabalho com tamanhos de E/S pequenos, como aplicativos de banco de dados.
- Tolerância a falhas de rede: várias conexões reduzem o risco de interrupção, uma vez que os clientes não dependem mais de uma conexão individual.
- Configuração automática: Quando o SMB Multichannel está ativado em clientes e contas de armazenamento, permite a descoberta dinâmica de ligações existentes e pode criar caminhos de ligação adicionais conforme necessário.
- Otimização de custos: as cargas de trabalho podem alcançar uma escala maior a partir de uma única VM ou de um pequeno conjunto de VMs, enquanto se conectam a compartilhamentos de arquivos SSD. Isso poderia reduzir o custo total de propriedade, reduzindo o número de VMs necessárias para executar e gerenciar uma carga de trabalho.
- Escalonamento de desempenho do cliente Linux: Os clientes SMB Linux podem agora aproveitar o multicanal para aumentar o débito e IOPS semelhante aos do Windows.
- Consistência multiplataforma: Permite ambientes híbridos com clientes Windows e Linux a alcançarem desempenho ótimo.
- Resiliência: Múltiplos canais melhoram a tolerância a falhas em relação a redes heterogéneas.
Para obter mais informações sobre o SMB Multichannel, consulte a documentação do Windows.
Esse recurso oferece maiores benefícios de desempenho para as aplicações multithread, mas geralmente não ajuda as aplicações single thread. Consulte a seção Comparação de desempenho para obter mais detalhes.
Limitações
Atualmente, o SMB Multichannel para compartilhamentos de arquivos do Azure tem as seguintes restrições:
- Disponível apenas para partilhas de ficheiros SSD. Não disponível para partilhas de ficheiros HDD.
- Suportado apenas em clientes que usam o SMB 3.1.1. Certifique-se de que os sistemas operacionais do cliente SMB sejam corrigidos para os níveis recomendados.
- O número máximo de canais é de quatro. Para mais detalhes, consulte aqui.
Configuração do Windows
SMB Multichannel só funciona quando o recurso está habilitado no lado do cliente (seu cliente) e no lado do serviço (sua conta de armazenamento do Azure).
Em clientes Windows, o SMB Multichannel está habilitado por padrão. Você pode verificar sua configuração executando o seguinte comando do PowerShell:
Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel
Se o SMB Multichannel não estiver habilitado em sua conta de armazenamento do Azure, consulte Status do SMB Multichannel.
Desativar SMB Multichannel
Na maioria dos cenários, particularmente em cargas de trabalho multi-threaded, os clientes veem um desempenho aprimorado com o SMB Multichannel. No entanto, para alguns cenários específicos, como cargas de trabalho de thread único ou para fins de teste, convém desabilitar o SMB Multichannel. Consulte Comparação de desempenho e status SMB Multichannel para obter mais detalhes.
Verifique se o SMB Multichannel está configurado corretamente
- Crie uma nova partilha de ficheiros SSD ou utilize uma partilha de ficheiros SSD existente.
- Certifique-se de que o seu cliente suporta SMB Multichannel (um ou mais adaptadores de rede tem o receive-side scaling ativado). Consulte a documentação do Windows para obter mais detalhes.
- Monte um compartilhamento de arquivos para seu cliente.
- Gere carga com a sua aplicação. Uma ferramenta de cópia, como robocopy /MT, ou qualquer ferramenta de desempenho, como Diskspd para ler/gravar arquivos, pode gerar carga.
- Abra o PowerShell como administrador e use o seguinte comando:
Get-SmbMultichannelConnection |fl - Procure por as propriedades MaxChannels e CurrentChannels.
Comparação de desempenho
Há duas categorias de padrões de trabalho de leitura/gravação: monofilamento e multifilamento. A maioria das cargas de trabalho usa vários arquivos, mas pode haver casos de uso específicos em que a carga de trabalho funciona com um único arquivo em um compartilhamento. Esta seção aborda diferentes casos de uso e o impacto no desempenho de cada um deles. Em geral, a maioria das cargas de trabalho são multithread e distribuem a carga de trabalho em vários arquivos, pelo que devem observar melhorias significativas no desempenho com o SMB Multichannel.
- Arquivos multi-threaded/múltiplos: Dependendo do padrão de carga de trabalho, você verá uma melhoria significativa no desempenho de E/S de leitura e gravação em vários canais. Os ganhos de desempenho variam de 2x a 4x em termos de IOPS, taxa de transferência e latência. Para esta categoria, SMB Multichannel deve ser habilitado para o melhor desempenho.
- Multi-thread/ficheiro único: Para a maioria dos casos de uso nesta categoria, as cargas de trabalho beneficiam de ter o SMB Multichannel ativado, especialmente se a carga de trabalho tiver um tamanho > médio de E/S de ~16k. Alguns cenários de exemplo que se beneficiam do SMB Multichannel são backup ou recuperação de um único arquivo grande. Uma exceção em que você pode querer desativar o SMB Multichannel é se sua carga de trabalho for pesada em E/S pequenas. Nesse caso, pode notar uma ligeira perda de desempenho de ~10%. Dependendo do caso de uso, considere distribuir a carga por vários arquivos ou desative o recurso.
- Múltiplos arquivos monofio ou arquivo único: Para a maioria das cargas de trabalho monofio, há benefícios mínimos de desempenho devido à falta de paralelismo. Normalmente, há uma ligeira degradação do desempenho de 10% se o SMB Multichannel estiver ativado. Neste caso, o ideal é desativar o SMB Multichannel, com uma exceção. Se a carga de trabalho monothread puder distribuir carga em vários arquivos e usar em média um tamanho de E/S maior (maior que 16 KiB), então poderão ser observados pequenos benefícios de desempenho com o SMB Multichannel.
Configuração de teste de desempenho
Para os gráficos deste artigo, foi usada a seguinte configuração: Uma única VM padrão D32s v3 com uma única NIC habilitada para RSS com quatro canais. A carga foi gerada usando o diskspd.exe, com várias threads, profundidade de IO de 10, e IOs aleatórios com vários tamanhos de IO.
Multi-threaded/vários arquivos com SMB Multichannel
A carga foi gerada contra 10 arquivos com vários tamanhos de E/S. Os resultados do teste de scale-up mostraram melhorias significativas nos resultados do teste IOPS e da taxa de transferência com o SMB Multichannel habilitado. Os diagramas a seguir descrevem os resultados:
- Em uma única NIC, para leituras, foi observado um aumento de desempenho de 2x-3x e para gravações, ganhos de 3x-4x em termos de IOPS e taxa de transferência.
- O SMB Multichannel permitiu que IOPS e taxa de transferência atingissem os limites de VM mesmo com uma única NIC e o limite de quatro canais.
- Como o tráfego de saída (leituras do armazenamento) não é monitorizado, o débito de leitura conseguiu ultrapassar o limite publicado pela VM de aproximadamente 1,86 GiB/s, alcançando mais de 2,7 GiB/s. A entrada (escritas para armazenamento) permanece sujeita aos limites de débito da VM.
- Distribuir a carga por vários arquivos permitiu melhorias substanciais.
Um comando de exemplo usado neste teste é:
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 .
Cargas de trabalho multi-threaded/ficheiro único com SMB Multichannel
A carga foi gerada contra um único arquivo de 128 GiB. Com o SMB Multichannel habilitado, o teste de escalonamento com ficheiros multi-threaded/únicos mostrou melhorias na maioria dos casos. Os diagramas a seguir descrevem os resultados:
- Em uma única NIC com tamanho médio de E/S maior (maior que 16 KiB), houve melhorias significativas em leituras e gravações.
- Para tamanhos de E/S menores, houve um pequeno impacto de aproximadamente 10% no desempenho com SMB Multichannel ativado. Isso pode ser atenuado distribuindo a carga por vários arquivos ou desativando o recurso.
- O desempenho ainda está limitado por limites de arquivo único.
Cache de metadados para compartilhamentos de arquivos SSD
O cache de metadados é um aprimoramento para compartilhamentos de arquivos do Azure SSD que reduz a latência de metadados e aumenta os limites de escala de metadados. O recurso aumenta a consistência de latência e IOPS disponíveis e aumenta a taxa de transferência da rede. Tanto clientes Windows como Linux podem usá-lo.
Esta funcionalidade melhora o desempenho das seguintes APIs de metadados:
- Criar
- Abrir
- Fechar
- Eliminar
Atualmente, o recurso está disponível apenas para compartilhamentos de arquivos SSD. Não há custos adicionais associados ao uso desse recurso. Você também pode se registrar para aumentar os limites de identificador de arquivos para compartilhamentos de arquivos SSD (visualização).
Registre-se para o recurso de cache de metadados
Para começar, registre-se para o recurso usando o portal do Azure ou o Azure PowerShell.
- Entre no portal do Azure.
- Pesquise e selecione Visualizar recursos.
- Selecione o filtro Tipo e selecione Microsoft.Storage.
- Selecione Cache de Metadados de Arquivos Premium do Azure e, em seguida, selecione Registrar.
Importante
- Embora listados em Funcionalidades de Pré-visualização, respeitamos os SLAs da GA.
- Após registar a funcionalidade, contacte azfilespreview@microsoft.com para obter mais instruções.
Melhorias de desempenho com cache de metadados
A maioria das cargas de trabalho ou padrões de uso que contêm metadados pode se beneficiar do cache de metadados. Para determinar se sua carga de trabalho contém metadados, você pode usar o Azure Monitor para dividir as transações por dimensão de API.
As cargas de trabalho e os padrões de uso típicos com muitos metadados incluem:
- Serviços Web/aplicações
- Tarefas de DevOps
- Tarefas de indexação/lote
- Áreas de trabalho virtuais com diretórios domésticos ou outras cargas de trabalho que interagem principalmente com muitos arquivos pequenos, diretórios ou manipuladores
Os diagramas a seguir descrevem resultados potenciais.
Reduzir a latência dos metadados
Ao armazenar em cache caminhos de arquivos e diretórios para pesquisas futuras, o cache de metadados pode reduzir a latência em arquivos e diretórios acessados com frequência em 30% ou mais para cargas de trabalho com muitos metadados em escala.
Aumentar as IOPS disponíveis
O cache de metadados pode aumentar o IOPS disponível em mais de 60% para cargas de trabalho pesadas de metadados em escala.
Aumente a taxa de transferência da rede
O cache de metadados pode aumentar a taxa de transferência da rede em mais de 60% para cargas de trabalho pesadas de metadados em escala.
Registar para aumentar os limites de manuseio de arquivos (pré-visualização)
Para aumentar o número máximo de identificadores simultâneos por arquivo e diretório para compartilhamentos de arquivos SMB SSD de 2.000 para 10.000, registre-se no recurso de visualização usando o portal do Azure ou o Azure PowerShell. Em caso de dúvidas, envie um e-mail para azfilespreview@microsoft.com.
- Entre no portal do Azure.
- Pesquise e selecione Visualizar recursos.
- Selecione o filtro Tipo e selecione Microsoft.Storage.
- Selecione Azure Premium Files Increased Maximum Opened Handles Count e, em seguida, selecione Registar.
Próximos passos
- Verificar o estado do SMB Multichannel
- Consulte a documentação do Windows para SMB Multichannel