Partilhar via


Compreender a metodologia de teste de desempenho nos Arquivos NetApp do Azure

A ferramenta de benchmark usada nesses testes é chamada de Flexible I/O Tester (FIO).

Ao testar as bordas dos limites de desempenho para armazenamento, a geração de carga de trabalho deve ser altamente paralelizada para alcançar o máximo de resultados possível.

Isto significa:

  • um, para muitos clientes
  • várias CPUs
  • vários threads
  • executando E/S em vários arquivos
  • Conexões de rede multi-threaded (como nConnect)

O objetivo final é levar o sistema de armazenamento o mais longe possível antes que as operações comecem a aguardar a conclusão de outras operações. O uso de um único cliente atravessando um único fluxo de rede ou leitura/gravação de/para um único arquivo (por exemplo, usando dd ou diskspd em um único cliente) não fornece resultados indicativos da capacidade dos Arquivos NetApp do Azure. Em vez disso, essas configurações mostram o desempenho de um único arquivo, que geralmente tende com a velocidade da linha e/ou as configurações de QoS do Arquivo NetApp do Azure.

Além disso, o cache deve ser minimizado tanto quanto possível para obter resultados precisos e representativos do que o armazenamento pode realizar. No entanto, o cache é uma ferramenta muito real para que os aplicativos modernos tenham o melhor desempenho. Eles cobrem cenários com algum cache e com o cache ignorado para cargas de trabalho de E/S aleatórias usando a randomização da carga de trabalho por meio de opções FIO (especificamente, randrepeat=0 para evitar o cache no armazenamento e directio para impedir o cache do cliente).

Sobre o testador de E/S flexível

O testador de E/S flexível (FIO) é uma ferramenta de geração de carga de trabalho de código aberto comumente usada para benchmarking de armazenamento devido à sua facilidade de uso e flexibilidade na definição de padrões de carga de trabalho. Para obter informações sobre seu uso com Arquivos NetApp do Azure, consulte Recomendações de teste de benchmark de desempenho para Arquivos NetApp do Azure.

Instalação do FIO

Siga a seção Pacotes binários no arquivo FIO README para instalar na plataforma de sua escolha.

Exemplos de FIO para IOPS

Os exemplos de FIO nesta seção usam a seguinte configuração:

  • Tamanho da instância da VM: D32s_v3
  • Nível de serviço e tamanho do pool de capacidade: Premium / 50 TiB
  • Tamanho da quota de volume: 48 TiB

Os exemplos a seguir mostram as leituras e gravações aleatórias do FIO.

FIO: 8k tamanho do bloco 100% leituras aleatórias

fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO: 8k tamanho de bloco 100% aleatório escreve

fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Resultados de benchmark

Para obter resultados de benchmark oficiais sobre o desempenho do FIO nos Arquivos NetApp do Azure, consulte Benchmarks de desempenho dos Arquivos NetApp do Azure para Linux.

Exemplos de FIO para largura de banda

Os exemplos nesta seção mostram as leituras e gravações sequenciais do FIO.

FIO: tamanho de bloco de 64k leituras 100% sequenciais

fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO: tamanho de bloco de 64k gravações 100% sequenciais

fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Resultados de benchmark

Para obter resultados de benchmark oficiais sobre o desempenho do FIO nos Arquivos NetApp do Azure, consulte Benchmarks de desempenho dos Arquivos NetApp do Azure para Linux.

Armazenamento em cache com FIO

O FIO pode ser executado com opções específicas para controlar como um benchmark de desempenho lê e grava arquivos. Nos testes de benchmarks com cache excluído, o sinalizador randrepeat=0 FIO foi usado para evitar o cache executando uma verdadeira carga de trabalho aleatória em vez de um padrão repetido.

[randrepeat]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)

Por padrão, quando randrepeat não é definido, a ferramenta FIO define o valor como "true", o que significa que os dados produzidos nos arquivos não são verdadeiramente aleatórios. Assim, os caches do sistema de arquivos não são utilizados para melhorar o desempenho geral da carga de trabalho.

Em benchmarks anteriores para Arquivos NetApp do Azure, randrepeat não foi definido, portanto, algum cache do sistema de arquivos foi implementado. Em testes mais atualizados, essa opção é definida como "0" (false) para garantir que haja aleatoriedade adequada nos dados para evitar caches do sistema de arquivos no serviço Azure NetApp Files. Essa modificação resulta em números gerais um pouco menores, mas é uma representação mais precisa do que o serviço de armazenamento é capaz de fazer quando o cache é ignorado.

Próximos passos