Compartilhar via


Aprimorar o desempenho de compartilhamentos de arquivos SMB do Azure

Aplica-se a: ✔️ compartilhamentos de arquivos do Azure SMB

Este artigo explica como você pode melhorar o desempenho para compartilhamentos de arquivos SSD (premium) do Azure SMB, incluindo o uso de SMB Multichannel e cache de metadados.

Otimizando o desempenho

As dicas a seguir podem ajudá-lo a otimizar o desempenho:

  • Verifique se sua conta de armazenamento e seu cliente estão na mesma região do Azure para reduzir a latência de rede.
  • Use aplicativos com vários threads e espalhe a carga em vários arquivos.
  • Os benefícios de desempenho do SMB Multichannel aumentam com o número de arquivos distribuindo a carga.
  • O desempenho do compartilhamento SSD é associado pelo tamanho de 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 de provisionamento v1.
  • O desempenho máximo de um único cliente de VM (máquina virtual) ainda está associado aos limites da VM. Por exemplo, Standard_D32s_v3 dá suporte a uma largura de banda máxima de aproximadamente 1,86 GiB/s. A entrada (gravações no armazenamento) é limitada, mas a saída (leituras do armazenamento) não é. O desempenho do compartilhamento de arquivos está sujeito a limites de rede do computador, 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. Descarte os resultados e repita o teste.
  • Se o desempenho for limitado por um único cliente e a carga de trabalho ainda estiver abaixo dos limites de compartilhamento provisionados, você poderá obter um desempenho mais alto espalhando a carga em 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íquidos. Tamanhos menores de E/S geram IOPS mais alto, mas resultam em menor taxa de transferência e latências líquidas. Para saber mais, confira Entender o desempenho dos Arquivos do Azure.

SMB Multichannel

O SMB Multichannel permite que um cliente SMB estabeleça várias conexões de rede com um compartilhamento de arquivos SMB, melhorando a taxa de transferência e a resiliência. Os Arquivos do Azure dão suporte ao SMB Multichannel em compartilhamentos de arquivos SSD para clientes SMB tanto do Windows quanto do Linux. Para versões do sistema operacional Linux com suporte e configuração detalhada, consulte a seção Multichannel SMB do Linux.

Suporte ao SMB Multichannel do Linux

Os Arquivos do Azure dão suporte ao SMB Multichannel com clientes SMB nativos do Linux nas seguintes distribuições:

  • Ubuntu 24.04 AKS: 6.8.0-1042
  • VMs do Ubuntu 24.04: 6.14.0-1017
  • VMs do 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

Esses clientes devem executar a pilha de kernel adequada e os utilitários CIFS que dão suporte a vários canais. O suporte multicanal SMB no Linux permite dimensionamento de desempenho semelhante ao Windows estabelecendo várias conexões TCP paralelas com o mesmo ponto de extremidade de compartilhamento de arquivo.

Pré-requisitos

Veja a seguir os pré-requisitos para usar o SMB Multichannel com Linux.

  • Kernel com suporte multicanal SMB habilitado (consulte o suporte multicanal SMB do Linux)
  • SMB 3.1.1
  • Porta 445/TCP aberta entre o cliente e o endpoint do Azure Files
  • Assegure-se de que o escalonamento do lado do recebimento (RSS) do lado do cliente esteja habilitado para fornecer suporte a várias filas

Comando de montagem de exemplo

Veja a seguir um comando de montagem de exemplo para usar o 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 fornecem maior desempenho e, ao mesmo tempo, reduzem o custo de propriedade. O aumento do desempenho é obtido por meio da agregação de largura de banda em vários NICs e utilizando o suporte ao Receive Side Scaling (RSS) para NICs para distribuir a carga de E/S em várias CPUs.

  • Maior taxa de transferência: várias conexões permitem que os dados sejam transferidos sobre vários caminhos em paralelo e, portanto, beneficiem de modo significativo as cargas de trabalho que usam tamanhos de arquivo maiores com E/S maiores e que exigem alta taxa de transferência em uma VM ou em um conjunto menor de VMs. Algumas dessas cargas de trabalho incluem mídia e entretenimento para criação de conteúdo ou transcodificação, genômica e análise de risco de serviços financeiros.
  • Maior IOPS: A capacidade RSS da NIC permite uma distribuição de carga eficaz entre várias CPUs com múltiplas conexões. Isso ajuda na obtenção de uma escala de IOPS mais alta e na utilização eficaz de CPUs da VM. Isso é útil para cargas de trabalho que têm tamanhos de E/S pequenos, como aplicativos de banco de dados.
  • Tolerância a falhas da rede: várias conexões reduzem o risco de interrupção, pois os clientes não dependem mais de uma conexão individual.
  • Configuração automática: quando o SMB Multichannel está habilitado em clientes e contas de armazenamento, ele permite a descoberta dinâmica de conexões existentes e pode criar caminhos de conexão adicionais conforme necessário.
  • Otimização de custo: as cargas de trabalho podem obter uma escala maior de uma única VM ou um pequeno conjunto de VMs, ao mesmo tempo em que se conectam a compartilhamentos de arquivos SSD. Isso pode reduzir o custo total de propriedade, reduzindo o número de VMs necessárias para executar e gerenciar uma carga de trabalho.
  • Dimensionamento de desempenho do cliente Linux: os clientes SMB do Linux agora podem aproveitar o multicanal para aumentar a taxa de transferência e a IOPS semelhantes ao Windows.
  • Consistência entre plataformas: habilita ambientes híbridos com clientes Windows e Linux alcançando um desempenho ideal.
  • Resiliência: vários canais melhoram a tolerância a falhas em relação à rede heterogênea.

Para obter mais informações sobre o SMB Multichannel, consulte a documentação do Windows.

Esse recurso fornece benefícios de desempenho maiores para aplicativos com vários threads, mas normalmente não ajuda aplicativos de thread único. Confira a seção Comparação de desempenho para obter mais detalhes.

Limitações

O SMB Multichannel para compartilhamentos de arquivos do Azure atualmente tem as seguintes restrições:

  • Disponível somente para compartilhamentos de arquivos SSD. Não disponível para compartilhamentos de arquivos HDD.
  • Há suporte apenas para clientes que estão usando o SMB 3.1.1. Verifique se os sistemas operacionais cliente SMB são corrigidos para os níveis recomendados.
  • O número máximo de canais é quatro. Para obter detalhes, confira aqui.

Configuração do Windows

O SMB Multichannel funciona apenas quando o recurso está habilitado no lado do cliente (o seu cliente) e no lado do serviço (a sua conta de armazenamento do Azure).

Em clientes do Windows, o SMB Multichannel é habilitado por padrão. É possível verificar a sua configuração executando o seguinte comando do PowerShell:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

Se o SMB Multichannel não estiver habilitado na sua conta de armazenamento do Azure, consulte Status do SMB Multichannel.

Desabilitar o SMB Multichannel

Na maioria dos cenários, especialmente cargas de trabalho com vários threads, os clientes veem um desempenho aprimorado com o SMB Multichannel. No entanto, em alguns cenários específicos, como em cargas de trabalho de thread único ou para fins de teste, talvez seja vantajoso desabilitar o SMB Multicanal. Consulte Comparação de desempenho e Status do SMB Multichannel para obter mais detalhes.

Verificar se o SMB Multichannel está configurado corretamente

  1. Crie um novo compartilhamento de arquivos SSD ou use um compartilhamento de arquivo SSD existente.
  2. Verifique se o cliente dá suporte ao SMB Multichannel (em um ou mais adaptadores de rede está habilitada a escalada do lado do receptor). Confira a documentação do Windows para obter mais detalhes.
  3. Monte um compartilhamento de arquivo para o seu cliente.
  4. Gere a carga com o seu aplicativo. Uma ferramenta de cópia, como robocopy /MT, ou qualquer ferramenta de desempenho, como Diskspd para arquivos de leitura/gravação, pode gerar carga.
  5. Abra o PowerShell como um administrador e use o seguinte comando: Get-SmbMultichannelConnection |fl
  6. Procurar as propriedades MaxChannels e CurrentChannels.

Comparação de desempenho

Há duas categorias de padrões de carga de trabalho de leitura/gravação: thread único e vários threads. 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 apenas um arquivo em um compartilhamento. Esta seção aborda diferentes casos de uso e qual impacto no desempenho cada um deles tem. Em geral, a maioria das cargas de trabalho tem vários threads e distribui a carga de trabalho em vários arquivos. Portanto, eles devem observar um aumento significativo no desempenho com o SMB Multichannel.

  • Vários threads/vários arquivos: dependendo do padrão de carga de trabalho, você deverá ver um aumento significativo no desempenho de E/S (leitura e gravação) em vários canais. Os ganhos de desempenho variam entre um aumento de 2x a 4x em termos de IOPS, taxa de transferência e latência. Nessa categoria, o SMB Multichannel deve estar habilitado para obter o melhor desempenho.
  • Arquivo multi-threaded/único: para a maioria dos casos de uso nessa categoria, as cargas de trabalho se beneficiam de ter o SMB Multichannel habilitado, especialmente se a carga de trabalho tiver um tamanho > médio de E/S ~16k. Alguns cenários de exemplo que se beneficiam do SMB Multichannel são o backup ou a recuperação de um arquivo grande. Uma exceção em que você pode querer desabilitar o SMB Multichannel é se sua carga de trabalho for pesada em E/S pequenas. Nesse caso, você pode observar uma pequena perda de desempenho de aproximadamente 10%. Dependendo do caso de uso, considere a propagação da carga entre vários arquivos ou desabilite o recurso.
  • Arquivos de thread único/vários ou arquivo único: para a maioria das cargas de trabalho de thread único, há benefícios mínimos de desempenho devido à falta de paralelismo. Normalmente, há uma pequena degradação de desempenho de 10% se o SMB Multichannel estiver habilitado. Nesse caso, é ideal desabilitar o SMB Multichannel com uma exceção. Se a carga de trabalho de thread único puder distribuir a carga entre vários arquivos e usar um tamanho médio de E/S maior (maior que 16 KiB), deverá haver pequenos benefícios de desempenho do SMB Multichannel.

Configuração de teste de desempenho

Para os gráficos neste artigo, a seguinte configuração foi usada: uma VM Standard D32s v3 com um adaptador de rede habilitado para RSS com quatro canais. A carga foi gerada usando o diskspd.exe, vários threads com uma profundidade de E/S de 10 e usando E/Ss aleatórias de vários tamanhos.

Vários threads/vários arquivos com SMB Multichannel

A carga foi gerada em dez arquivos com vários tamanhos de E/S. Os resultados de teste de escala vertical mostraram aprimoramentos significativos nos resultados de teste de taxa de transferência e de IOPS com o SMB Multichannel habilitado. Os seguintes diagramas descrevem os resultados:

Diagrama de desempenho.

Diagrama de desempenho da taxa de transferência.

  • Em um adaptador de rede houve um aumento de desempenho de leitura de 2x a 3x e um aumento de 3x a 4x no desempenho das gravações, tanto na IOPS e como na taxa de transferência.
  • O SMB Multichannel permitiu que a IOPS e a taxa de transferência alcançassem os limites de VM mesmo com apenas um adaptador de rede e com um limite de quatro canais.
  • Como a saída (leituras do armazenamento) não é limitada, a taxa de transferência de leitura foi capaz de exceder o limite publicado da VM de aproximadamente 1,86 GiB/s, alcançando mais de 2,7 GiB/s. A entrada (gravações no armazenamento) permanece sujeita aos limites de taxa de transferência da VM.
  • A distribuição de carga em vários arquivos permitiu melhorias substanciais.

Um exemplo de comando 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 de vários threads/arquivo único com o SMB Multichannel

A carga foi gerada em um arquivo de 128 GiB. Com o SMB Multichannel habilitado, o teste de escala vertical com vários threads/arquivos únicos mostrou aprimoramentos na maioria dos casos. Os seguintes diagramas descrevem os resultados:

Diagrama de desempenho de IOPS.

Diagrama de desempenho da taxa de transferência de arquivo único.

  • Em uma única NIC com tamanho médio maior de E/S (maior que 16 KiB), houve melhorias significativas nas leituras e gravações.
  • Em tamanhos de E/S menores, houve um pequeno impacto de aproximadamente 10% no desempenho com o SMB Multichannel habilitado. Isso pode ser reduzido por meio da disseminação da carga em vários arquivos ou desabilitando o recurso.
  • O desempenho ainda tem limites de arquivo único.

Cache de metadados para compartilhamentos de arquivos SSD

O cache de metadados é um aprimoramento para compartilhamentos de arquivos em unidades SSD do Azure que reduz a latência de metadados e aumenta os limites de escala dos metadados. O recurso aumenta a consistência de latência e o IOPS disponível e aumenta a taxa de transferência de rede. Os clientes Windows e Linux podem usá-lo.

Esse recurso melhora o desempenho das seguintes APIs de metadados:

  • Criar
  • Aberto
  • Fechar
  • Excluir

Atualmente, o recurso só está disponível 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 arquivo para compartilhamentos de arquivos SSD (versão prévia).

Registrar-se para o recurso de cache de metadados

Comece registrando-se para obter o recurso no portal do Azure ou no Azure PowerShell.

  1. Entre no portal do Azure.
  2. Pesquise e selecione Recursos de Visualização Prévia.
  3. Selecione o filtro Tipo e selecione Microsoft.Storage.
  4. Selecione o Cache de Metadados de Arquivos Premium do Azure e, em seguida, selecione Registrar.

Importante

  • Embora listados em Recursos de Pré-Visualização, respeitamos os SLAs de Disponibilidade Geral (GA).
  • Depois de registrar o recurso, entre em contato 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, é possível usar o Azure Monitor para dividir as transações pela dimensão da API.

Cargas de trabalho e padrões de uso típicos de metadados pesados incluem:

  • Serviços Web/aplicativos
  • Tarefas do DevOps
  • Trabalhos de indexação/em lotes
  • Áreas de trabalho virtuais com diretórios pessoais ou outras cargas de trabalho que interagem principalmente com muitos arquivos pequenos, diretórios ou identificadores

Os diagramas a seguir ilustram resultados em potencial.

Reduzir latência de metadados

Ao armazenar em cache caminhos de arquivo e diretório 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 pesadas de metadados em escala.

Gráfico mostrando a latência em milissegundos com e sem o cache de metadados.

Aumentar IOPS disponível

O cache de metadados pode aumentar a IOPS disponível em mais de 60% para cargas de trabalho pesadas de metadados em escala.

Gráfico mostrando a IOPS disponível com e sem o cache de metadados.

Aumentar a taxa de transferência de rede

O cache de metadados pode aumentar a taxa de transferência de rede em mais de 60% para cargas de trabalho pesadas de metadados em escala.

Gráfico mostrando a taxa de transferência de rede com e sem o cache de metadados.

Registrar-se para aumentar os limites de identificador de arquivo (versão prévia)

Para aumentar o número máximo de identificadores simultâneos por arquivo e diretório para compartilhamentos de arquivos SMB em SSD de 2.000 para 10.000, inscreva-se no recurso de pré-visualização usando o portal do Azure ou o Azure PowerShell. Se você tiver dúvidas, envie um email azfilespreview@microsoft.com.

  1. Entre no portal do Azure.
  2. Pesquise e selecione Recursos de Visualização Prévia.
  3. Selecione o filtro Tipo e selecione Microsoft.Storage.
  4. Selecione Contagem máxima aumentada de identificadores abertos do Azure Premium Files e, em seguida, selecione Registrar.

Próximas etapas