Aprimorar o desempenho de compartilhamentos de arquivos SMB do Azure

Este artigo explica como você pode melhorar o desempenho dos compartilhamentos de arquivos Premium do SMB do Azure, incluindo o uso de cache de metadados e SMB Multichannel (versão prévia).

Aplica-se a

Tipo de compartilhamento de arquivos SMB NFS
Compartilhamentos de arquivos padrão (GPv2), LRS/ZRS Não Não
Compartilhamentos de arquivos padrão (GPv2), GRS/GZRS Não Não
Compartilhamento de arquivos premium (FileStorage), LRS/ZRS Sim Não

Otimizando o desempenho

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

  • Verifique se a sua conta de armazenamento e cliente estão localizados na mesma região do Azure para reduzir a latência de rede.
  • Use aplicativos com vários threads e distribua a carga em vários arquivos.
  • Os benefícios de desempenho do SMB Multichannel aumentam em paralelo com o número de arquivos de distribuição de carga.
  • O desempenho de compartilhamento premium é limitado pelo tamanho do compartilhamento provisionado (IOPS/saída/entrada) e por limites de arquivo único. Para obter detalhes, confira Noções básicas sobre o provisionamento de compartilhamentos de arquivos premium.
  • O desempenho máximo de um cliente com apenas uma VM ainda é atrelado aos limites da VM. Por exemplo, Standard_D32s_v3 pode dar suporte a uma largura de banda máxima de 16.000 MBps (ou 2 GBps), a saída da VM (gravações no armazenamento) é limitada e a entrada (leituras do armazenamento) não. O desempenho do compartilhamento de arquivo está sujeito a limites de rede do computador, CPUs, largura de banda de rede disponível para armazenamento interno, tamanhos de E/S, paralelismo, além de outros fatores.
  • O teste inicial geralmente é um aquecimento. Descarte os resultados e repita o teste.
  • Se o desempenho for limitado por um cliente individual e a carga de trabalho ainda estiver abaixo dos limites de compartilhamento provisionados, será possível obter um desempenho melhor com a distribuição da carga entre 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 maiores geram uma taxa de transferência mais alta e terão latências maiores, resultando em um número menor de IOPS de rede. Tamanhos de E/S menores gerarão uma IOPS maior, mas resultarão em latências e taxa de transferência líquida menores. 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. Os Arquivos do Azure dão suporte ao SMB Multichannel em compartilhamentos de arquivos premium para clientes Windows. No lado do serviço, o SMB Multichannel agora está habilitado por padrão para todas as contas de armazenamento recém-criadas em todas as regiões do Azure. Não há nenhum custo adicional para habilitar o SMB Multichannel.

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.
  • IOPS mais alta: a funcionalidade RSS do adaptador de rede permite uma distribuição de carga efetiva entre várias CPUs com várias 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 estiver habilitado em clientes e contas de armazenamento, ele permitirá a descoberta dinâmica de conexões existentes e pode criar caminhos de conexão adicionais conforme necessário.
  • Otimização de custos: as cargas de trabalho podem alcançar uma escala maior com apenas uma VM ou com um pequeno conjunto de VMs, enquanto se conectam a compartilhamentos premium. Isso pode reduzir o custo total de propriedade, reduzindo o número de VMs necessárias para executar e gerenciar uma carga de trabalho.

Para saber mais sobre o SMB Multichannel, confira 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 o compartilhamento de arquivos premium do Azure. Não disponível para o compartilhamento de arquivos padrão do Azure.
  • Compatível apenas com clientes Windows que usam SMB 3.1.1. Verifique se os sistemas operacionais cliente SMB são corrigidos para os níveis recomendados.
  • No momento, não há suporte ou recomendação para clientes Linux.
  • O número máximo de canais é quatro; para obter mais detalhes, consulte aqui.

Configuração

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 observam 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 arquivo premium ou use um compartilhamento premium existente.
  2. Verifique se o cliente dá suporte ao SMB Multichannel (um ou mais adaptadores de rede estão com a escala do lado do receptor habilitada). 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.
  • Vários threads/arquivo único: na maioria dos casos de uso nessa categoria, as cargas de trabalho serão beneficiadas pela habilitação do SMB Multichannel, 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ê poderá 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. Confira a seção Configuração para obter detalhes.
  • 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 aproximadamente 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 (> ~16k), 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.

Tamanho vCPU Memória: GiB Armazenamento temporário (SSD) GiB Discos de dados máximos Taxa de transferência máxima de armazenamento em cache e temporária: IOPS/MBps (tamanho do cache no GiB) Taxa de transferência de disco sem cache: IOPS/MBps Máximo de NICs Largura de banda de rede esperada (Mbps)
Standard_D32s_v3 32 128 256 32 64000/512 (800) 51200/768 8 16000

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 (ou leituras no armazenamento) não é limitada, a taxa de transferência de leitura conseguiu de exceder o limite publicado da VM de 16.000 Mbps (2 GiB/s). O teste obteve um resultado de>2,7 GiB/s. A entrada (ou gravações no armazenamento) ainda está sujeita aos limites de VM.
  • A distribuição de carga em vários arquivos é permitida para a obtenção de aprimoramentos 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 um adaptador de rede com o tamanho médio de E/S maior (> ~16k), houve melhoras significativas em 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 Premium do SMB

O cache de metadados é um aprimoramento para compartilhamentos de arquivos premium do Azure SMB com o objetivo de melhorar o seguinte:

  • Reduzir latência de metadados
  • Limites de escala de metadados elevados
  • Aumentar a consistência de latência, o IOPS disponível e aumentar a taxa de transferência de rede

Esta versão prévia do recurso melhora as seguintes APIs de metadados e pode ser usado em clientes Windows e Linux:

  • Criar
  • Aberto
  • Fechar
  • Excluir

Atualmente, essa versão prévia do recurso só está disponível para compartilhamentos de arquivos Premium do SMB (compartilhamentos de arquivos no tipo de conta de armazenamento FileStorage). Não há custos adicionais associados ao uso desse recurso.

Registrar-se para obter o recurso

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 Versão prévia do recurso.
  3. Selecione o filtro Tipo e selecione Microsoft.Storage.
  4. Selecione Visualização de Cache de Metadados dos Arquivos Premium do Azure e selecione Registrar.

Importante

Permita de 1 a 2 dias para que as contas sejam integradas após a conclusão do registro.

Disponibilidade regional

Atualmente, a versão prévia do cache de metadados só está disponível nas seguintes regiões do Azure. Para solicitar suporte adicional à região, inscreva-se para a visualização pública.

  • Leste da Ásia
  • Austrália Central
  • Leste da Austrália
  • Sudeste da Austrália
  • Brazil South
  • Canadá Central
  • Leste do Canadá
  • Norte da Europa
  • França Central
  • Centro-Oeste da Alemanha
  • Leste do Japão
  • Oeste do Japão
  • Jio Oeste da Índia
  • Centro da Índia
  • Sul da Índia
  • Oeste da Índia
  • Israel Central
  • Norte da Itália
  • Coreia Central
  • Sul da Coreia
  • México Central
  • Leste da Noruega
  • Polônia Central
  • Catar Central
  • Espanha Central
  • Suécia Central
  • Norte da Suíça
  • Norte dos EAU
  • Oeste do Reino Unido
  • Sul do Reino Unido
  • Centro-Norte dos EUA
  • Centro-Sul dos EUA
  • Centro-Oeste dos EUA
  • Oeste dos EUA 2
  • Oeste dos EUA 3

Dica

À medida que estendemos o suporte de região para o recurso cache de metadados, as contas de armazenamento de arquivos premium nessas regiões serão automaticamente integradas para todas as assinaturas registradas com o recurso de cache de metadados.

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 domésticos 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.

Próximas etapas