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 armazenamento de Blob agora suporta o protocolo NFS (Network File System) 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 do NFS 3.0 para o Armazenamento de Blobs do Azure, consulte Suporte do protocolo NFS (Network File System) 3.0 para armazenamento de Blob do Azure.
Adicionar clientes para aumentar a taxa de transferência
O Armazenamento de Blobs do Azure é dimensionado 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) e com uma conta de armazenamento v2 de uso geral padrão.
O gráfico abaixo mostra o mesmo efeito quando aplicado a uma conta de armazenamento premium de blobs de bloco.
Use contas de armazenamento de blob de bloco premium para aplicativos de pequena escala
Nem todos os aplicativos podem ser dimensionados adicionando mais clientes. Para essas aplicações, a conta premium de armazenamento de blobs de blocos do Azure oferece latência consistentemente baixa e altas taxas de transação. 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 de blob de bloco premium pode atingir 2,3x de largura de banda em comparação com a mesma configuração usada com uma conta de armazenamento v2 de uso geral de 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 kernel representa a quantidade de dados adicionais que devem ser lidos após o cumprimento de uma determinada solicitação de leitura. 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
Concluir uma operação de substituição leva mais tempo do que concluir uma nova operação de gravação. Isso ocorre porque uma operação de substituição de NFS, especialmente uma edição parcial de arquivo in-loco, é uma combinação de várias operações de blob subjacentes: uma operação de leitura, uma modificação e uma operação de gravação. Portanto, um aplicativo que requer edições frequentes no local não é adequado para contas de armazenamento de blob habilitadas para NFS.
Implantar o Cache HPC do Azure para aplicativos sensíveis à latência
Alguns aplicativos podem exigir baixa latência, além de alta taxa de transferência. Você pode implantar o Cache HPC do Azure para melhorar significativamente a latência. Saiba mais sobre a latência no armazenamento de Blob.
Aumentar o número de conexões TCP
Você pode usar a nconnect opção mount para obter um desempenho agregado de leitura e gravação mais alto de uma única VM, mas somente se o kernel Linux tiver suporte ao Azure nconnect.
nconnect é uma opção de montagem Linux do lado do cliente que permite usar várias conexões TCP entre o cliente e o ponto de extremidade do serviço 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 totalmente o nconnect, você deve usar essa opção somente se o kernel tiver suporte ao Azure nconnect. Usar a opção de montagem sem o suporte do Azure nconnect diminuirá a nconnect taxa de transferência, causará vários tempos limite e fará com que comandos como READDIR e READIRPLUS funcionem incorretamente.
O suporte do Azure nconnect está disponível com a maioria dos kernels recentes do Ubuntu que podem ser usados com máquinas virtuais do Azure. Para descobrir se o suporte do Azure nconnect está disponível para seu kernel, execute o seguinte comando.
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
Se o suporte do Azure nconnect estiver disponível para o seu kernel, Yes é impresso no console. Caso contrário, 'No é impresso no console.
Se o suporte do Azure nconnect estiver disponível, habilite-o executando o seguinte comando.
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
Outras recomendações de 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 solicitações de armazenamento de um cliente localizado na mesma região da conta de armazenamento. Isso pode melhorar a latência da rede.
Próximos passos
Para saber mais sobre o suporte do NFS 3.0 para o Armazenamento de Blobs do Azure, consulte Suporte do protocolo NFS (Network File System) 3.0 para armazenamento de Blob do Azure.
Para começar, consulte Montar armazenamento de Blob usando o protocolo NFS (Network File System) 3.0.