Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Blob Storage suporta agora o protocolo Network File System (NFS) 3.0. Este artigo contém recomendações que ajudam a otimizar o desempenho de suas solicitações de armazenamento. Para saber mais sobre o suporte NFS 3.0 para Blob Storage, consulte Network File System (NFS) 3.0 suporte ao protocolo Azure Blob Storage.
Adicionar clientes para aumentar a taxa de transferência
O armazenamento em blob escala linearmente até atingir o limite máximo de saída e entrada da conta de armazenamento. Portanto, seus aplicativos podem obter uma taxa de transferência mais alta usando mais clientes. Para exibir os limites de entrada e saída da conta de armazenamento, consulte Metas de escalabilidade e desempenho para contas de armazenamento padrão.
O gráfico a seguir mostra como a largura de banda aumenta à medida que você adiciona mais clientes. Neste gráfico, um cliente é uma máquina virtual (VM) com uma conta padrão de armazenamento v2 de uso geral.
O gráfico abaixo mostra o mesmo efeito quando aplicado a uma conta de armazenamento premium de blobs de bloco.
Use contas premium de armazenamento blob em blocos para aplicações de pequena escala
Nem todos os aplicativos podem ser dimensionados adicionando mais clientes. Para essas aplicações, a conta premium de armazenamento de blocos em bloco Azure oferece consistentemente baixa latência e taxas de transação elevadas. A conta de armazenamento de blob de blocos premium pode alcançar a largura de banda máxima com menos threads e clientes. Por exemplo, com um único cliente, uma conta de armazenamento premium blob em bloco pode alcançar 2,3x mais largura de banda em comparação com a mesma configuração utilizada numa conta de armazenamento de uso geral v2 com desempenho padrão.
Cada barra no gráfico a seguir mostra a diferença na largura de banda alcançada entre contas de armazenamento de desempenho premium e padrão. À medida que o número de clientes aumenta, essa diferença diminui.
Melhore o tamanho do buffer de leitura antecipada para aumentar o desempenho de leitura de arquivos grandes.
O parâmetro read_ahead_kb do kernel representa a quantidade de dados extra que devem ser lidos após o cumprimento de uma solicitação de leitura específica. Você pode aumentar esse parâmetro para 16 MiB para melhorar a taxa de transferência de leitura de arquivos grandes.
export AZMNT=/your/container/mountpoint
echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb
Evite substituições frequentes nos dados
Demora mais tempo a concluir uma operação de sobrescrição do que uma nova operação de escrita. Uma operação de sobrescrição NFS, especialmente uma edição parcial de ficheiro no local, é uma combinação de várias operações de blob subjacentes, como operações de leitura, modificação e escrita. Portanto, uma aplicação que exige edições frequentes em local não é adequada para contas de Armazenamento Blob com suporte NFS.
Implantar o Cache HPC do Azure para aplicativos sensíveis à latência
Algumas aplicações podem exigir baixa latência além de alta taxa de rendimento. Você pode implantar o Cache HPC do Azure para melhorar significativamente a latência. Saiba mais sobre latência no Blob Storage.
Aumentar o número de conexões TCP
Podes usar a nconnect opção de montagem para obter maior desempenho agregado de leitura e escrita a partir de uma única VM, mas só se o teu kernel Linux tiver suporte para Azure nconnect.
A opção nconnect é uma opção de montagem do cliente para Linux que pode ser utilizada para várias ligações do Protocolo de Controlo de Transmissão (TCP) entre o cliente e o ponto final do serviço de blob. Você pode usar a nconnect opção no comando mount para especificar o número de conexões TCP que deseja criar (por exemplo: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain).
Importante
Embora as distribuições Linux mais recentes suportem nconnecttotalmente, use esta opção apenas se o seu kernel tiver suporte Azure nconnect . Usar a nconnect opção de montagem sem suporte Azure nconnect diminui o rendimento, causa múltiplos timeouts e faz com que comandos como READDIR e READIRPLUS funcionem incorretamente.
O suporte Azure nconnect está disponível com a maioria dos kernels Ubuntu recentes que pode usar com VMs Azure. Para saber se o suporte Azure nconnect está disponível para o seu kernel, execute o seguinte comando:
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
Se o suporte Azure nconnect estiver disponível para o seu kernel, Yes será impresso na consola. Caso contrário, No é impresso no console.
Se o suporte Azure nconnect estiver disponível, execute o seguinte comando para o ativar:
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
Outras boas práticas
- Use VMs com largura de banda de rede suficiente.
- Use vários pontos de montagem quando suas cargas de trabalho permitirem.
- Use o maior número possível de threads.
- Use blocos grandes.
- Faça pedidos de armazenamento a um cliente que esteja localizado na mesma região da conta de armazenamento para melhorar a latência da rede.
Conteúdo relacionado
- Para saber mais sobre o suporte NFS 3.0 para Blob Storage, consulte Network File System (NFS) 3.0 suporte ao protocolo Azure Blob Storage.
- Para começar, consulte Mount Blob Storage utilizando o protocolo Network File System (NFS) 3.0.