Considerações sobre o desempenho do sistema de arquivos

Concluído

Se você executou cargas de trabalho de HPC, é provável que tenha visto os termos operações, tamanho do bloco, IOPS, taxa de transferência e latência. Você provavelmente já considerou esses fatores ao escolher o armazenamento.

No final desta secção, deverá ter uma compreensão prática destes cinco fatores de desempenho e da forma como afetam as cargas de trabalho de HPC.

Operações

O termo Operações refere-se a qualquer atividade entre o host/máquina e o sistema de arquivos ou disco.

Por exemplo, você provavelmente está familiarizado com estas operações que envolvem um sistema operacional e seu disco local:

  • Criar (um arquivo)
  • Delete
  • Abertura
  • Fechar
  • Lida
  • Escrita
  • Acrescentar
  • Obter atributo
  • Definir atributo
  • Mudar o nome

NFS representa a interação no nível de rede entre um cliente de arquivo e um servidor. Observe que algumas dessas operações são semelhantes às operações locais. Mas como o NFS é uma API de rede, essas operações de rede podem envolver várias operações locais.

  • create (arquivo ou link)
  • mkdir
  • readdir ou readdirplus
  • getattr
  • setattr
  • lookup (procurar um filehandle em um diretório)
  • link/symlink/readlink
  • read
  • rename
  • remove
  • rmdir
  • write

Como é que as operações afetam o armazenamento HPC?

É útil entender como as operações afetam seu sistema de armazenamento. Por exemplo, suponha que sua carga de trabalho HPC crie um grande número de arquivos pequenos em estruturas de diretório aninhadas. Nesse cenário, sua carga de trabalho exigiria um número maior de operações do que para uma carga de trabalho que lê alguns arquivos sequenciais grandes.

Discutiremos esses padrões de acesso na próxima unidade. A create envolve várias operações, portanto, quanto mais arquivos sua carga de trabalho criar, maior será o efeito no desempenho.

Tamanho do bloco

Tamanho do bloco refere-se ao menor tamanho de dados (em bytes) que um sistema de arquivos pode ler ou gravar como uma operação.

Para nossos propósitos, o tamanho do bloco também se refere ao tamanho da carga útil de um bloco de dados NFS (leitura/gravação) que pode ser transmitido entre clientes NFS e servidores.

Os servidores e clientes NFS negociam o tamanho do bloco e aceitam o maior tamanho possível que suportam mutuamente. As configurações padrão podem variar de 4 KB a 64 KB. O valor máximo configurável atual é de 1 MB. Os pacotes de dados individuais podem ter cargas úteis não maiores do que o valor definido.

Você pode configurar explicitamente o tamanho do bloco em clientes. Verifique a declaração completa mount em suas máquinas de cluster HPC para determinar o valor. Os tamanhos padrão são definidos. Você não configura explicitamente os mount valores na instrução.

Os dois argumentos usados para configurar o tamanho do bloco NFS são rsize (tamanho de leitura) e wsize (tamanho de gravação).

Se você configurar um tamanho de bloco pequeno. Ou sua escolha de sistemas de arquivos tem um tamanho máximo de bloco pequeno e sua carga de trabalho consiste em arquivos grandes. O desempenho sofre por causa da fragmentação extra dos arquivos grandes.

IOPS

O termo IOPS, significa operações de entrada/saída por segundo. O número de IOPS em seu ambiente de armazenamento depende destes atributos:

  • O tipo de mídia de armazenamento. Por exemplo, unidades de disco rígido (HDD) versus unidades de estado sólido (SSD).
  • Latência introduzida pela conectividade de rede.
  • O tamanho do bloco usado pelo sistema de arquivos.
  • A quantidade de acesso simultâneo disponível para o sistema de arquivos.

Uma solução de armazenamento tem um único número IOPS. Por exemplo, se estiver a utilizar um disco gerido do Azure que suporte 5.000 IOPS, pode ter até 5.000 operações por segundo. Mas o número IOPS é uma medida do máximo total para todas as operações de leitura ou gravação no disco, incluindo leituras e gravações de sobrecarga do sistema.

Seu valor IOPS é um guia para o número máximo possível de operações que seu disco ou ambiente NAS pode suportar.

As medições são normalmente divididas entre operações de leitura e gravação aleatórias e sequenciais .

  • Uma operação aleatória é a leitura ou gravação de dados em pontos diferentes e aleatórios de um disco ou arquivo. Por exemplo, editar um intervalo específico de bytes em algum lugar em um arquivo.
  • Uma operação sequencial é o acesso contíguo do arquivo, lendo-o desde o início do arquivo.

Débito

A taxa de transferência refere-se à taxa de transferência total possível que o sistema de arquivos pode manipular, medida em bytes por segundo.

Para fazer um cálculo básico da taxa de transferência, multiplique as IOPS do sistema pelo tamanho do bloco.

Por exemplo, se você tiver um disco que suporte 3.000 IOPS e o tamanho do bloco for 4K, a taxa de transferência total possível será de 12 MBps.

Esse cálculo fornece uma compreensão básica das possibilidades gerais de desempenho do seu sistema de arquivos. Mas a taxa de transferência real pode ser diferente. Outros fatores afetam a taxa de transferência, incluindo coisas como sobrecarga de rede se você estiver criando ou excluindo um grande número de arquivos pequenos.

Latência

Latência refere-se à quantidade de tempo que leva para concluir uma operação. Quanto maior a latência, maior a probabilidade de execução mais lenta da carga de trabalho.

Pode haver várias fontes de latência dentro de uma única arquitetura, cada uma contribuindo para um efeito de latência geral.

A latência do sistema de arquivos pode ocorrer nestas condições:

  • Conexão de rede lenta entre o cliente e o servidor.
  • Congestionamento na rede ou no servidor de arquivos, causado por um grande número de solicitações simultâneas.
  • Latência natural devido à distância entre clientes e servidores (por exemplo, através de uma WAN).
  • Acesso lento ao subsistema de disco no próprio servidor de arquivos.

A latência nem sempre é consistente ou claramente documentada. Você precisa executar testes para determinar a latência entre suas máquinas de cluster HPC e o ponto de extremidade de armazenamento.

A latência também é um problema cumulativo. O desempenho da rede pode ser um contribuidor, mas pode haver outros fatores, como um sistema operacional de máquina mal configurado ou ineficiências no próprio código de carga de trabalho. Cada um desses fatores afeta a latência geral.

A latência é o fator mais importante quando você avalia o desempenho real do sistema de arquivos. Latências mais altas se traduzem em menos IOPS. Menos IOPS pode se traduzir em menor taxa de transferência.

Testar e calcular valores basais

Quando você escolhe a configuração de desempenho exata para cargas de trabalho HPC, a própria carga de trabalho tem uma influência significativa.

As ofertas do sistema de arquivos do Azure apresentam IOPS e valores de taxa de transferência esperados. Se você optar por criar sua própria solução NAS, use as métricas documentadas para cada máquina virtual e SKU de disco gerenciado.

Você pode usar uma configuração HPC de datacenter local como ponto de partida para expectativas de desempenho. Lembre-se de que as soluções em nuvem permitem criar vários ambientes que executam cargas de trabalho. Portanto, você pode ter mais flexibilidade por carga de trabalho no Azure. Em contraste, seu ambiente local foi construído com base em uma capacidade específica que não é facilmente (dinamicamente) expandida.

Você pode usar ferramentas básicas como ping, fio, iozonee iometer para determinar os números de linha de base do seu sistema de arquivos do Azure.

Criação de perfis de aplicativos

Você pode ter uma carga de trabalho intensiva de E/S que requer IOPS e taxa de transferência significativas para ser executada de forma eficiente. Ou sua carga de trabalho pode iniciar, ler bibliotecas e dados de origem na memória e continuar com E/S de armazenamento mínima. Talvez a primeira carga de trabalho da lista anterior escreva dados intermediários que outras máquinas de HPC devem ler. Cada uma dessas dinâmicas contribui para a forma como você aborda sua solução de armazenamento. Para garantir que as máquinas possam ler esses dados o mais rápido possível, concentre-se em reduzir a latência de leitura. Mas se sua carga de trabalho estiver gravando informações intermediárias ou de rascunho em discos, você deseja garantir que cada máquina HPC possa acessar rapidamente discos locais ou uma solução NAS compartilhada rapidamente para essas gravações. Dependendo de quais máquinas podem precisar ler essas gravações intermediárias.

Você provavelmente deseja investir na criação de perfis de seus aplicativos para o uso de E/S de armazenamento. A criação de perfis torna-se mais importante à medida que o cluster HPC aumenta em tamanho e número de cargas de trabalho.

A criação de perfis envolve o uso de ferramentas executadas em suas máquinas HPC e em seu ambiente de armazenamento. Essas ferramentas relatam a quantidade, o tipo e o tamanho das operações executadas em seu ambiente de armazenamento.

Criar o perfil de uma carga de trabalho pode ser difícil devido à quantidade de dados que podem ser gerados. Ferramentas como iostat e sar podem criar resultados significativos ao longo do tempo. Talvez seja necessário analisar os resultados e analisá-los ainda mais, gerando histogramas.

Se você estiver usando uma solução NAS, precisará coletar estatísticas da interface do fornecedor durante as execuções de criação de perfil. Em seguida, correlacione essas informações com os dados da máquina HPC para verificar os padrões de E/S.

Ferramentas de criação de perfil de terceiros estão disponíveis para ajudar na análise de E/S, algumas oferecidas por fornecedores de aplicativos HPC.

Verifique o seu conhecimento

1.

Blocos pequenos reduzem o desempenho se os seus ficheiros forem:

2.

Se você tiver um disco que suporta 5.000 IOPS e o tamanho do bloco for 4K, sua taxa de transferência total possível é: