Considerações sobre o tráfego do sistema de arquivos

Concluído

Os números de IOPS, taxa de transferência e latência de destino são os valores importantes. Mas, para otimizar o desempenho, você também precisa determinar como as cargas de trabalho de HPC interagem com o sistema de arquivos. A próxima etapa é quantificar a combinação e a escala do tráfego a que o sistema de arquivos precisa dar suporte.

Considerações sobre a combinação de tráfego

Combinação de tráfego é a composição do tráfego da carga de trabalho de HPC em termos de:

  • Proporção entre tráfego de leitura e de gravação. (Por exemplo, 100% leitura, 50% leitura e 50% gravação, 100% gravação.)
  • Leitura/gravação aleatória versus sequencial.
  • Pontos de verificação e instantâneos.
  • Simultaneidade.
  • Quantidade e tamanho dos arquivos.

No restante desta unidade, examinamos como essa combinação de tipos de tráfego afeta suas escolhas de armazenamento.

Tráfego de leitura, tráfego de gravação ou criação/exclusão

As operações de leitura e gravação consomem IOPS igualmente. Mas o sistema de arquivos escolhido pode aplicar alta disponibilidade ao tráfego de gravação de entrada, o que se traduz em uma taxa de transferência de gravação mais lenta, mas resiliente.

O desempenho poderá ser afetado se a sua carga de trabalho HPC fizer um grande número de operações com consumo intenso de metadados. Por exemplo, criar arquivos, renomear estruturas de diretório ou excluir arquivos. A criação de um arquivo pode consumir várias operações. (Verificar se o arquivo existe, criar o identificador de arquivo, atualizar a entrada de diretório e assim por diante.)

A carga de trabalho de HPC pode ser focada principalmente na transformação de dados e, de modo que a quantidade de tráfego de gravação pode ser significativa. Nesse caso, é interessante priorizar a otimização do desempenho de gravação.

Tráfego aleatório ou sequencial

O acesso ao aplicativo orienta o tipo de padrões de tráfego de leitura e gravação que a carga de trabalho pode exigir.

Cargas de trabalho de HPC podem ser altamente paralelas, com muitos computadores solicitando os mesmos dados de um sistema de arquivos compartilhado. Ou podem ser exclusivas e serializadas, com padrões de acesso a dados exclusivos e aleatórios. O desempenho do tráfego sequencial é superior ao do tráfego aleatório. Um exemplo de tráfego sequencial seria o carregamento de uma biblioteca binária ou de um arquivo de imagem ou de vídeo grande em um ou mais computadores. Um exemplo de tráfego aleatório incluiria solicitações de diferentes intervalos de bytes de somente um ou de vários arquivos, em vez da leitura de todo o arquivo.

Pontos de verificação e instantâneos

As cargas de trabalho frequentemente passam por pontos de verificação. Nos pontos de verificação, o estado do aplicativo e seus dados são copiados para o armazenamento durável e a carga de trabalho continua. Os pontos de verificação são usados para retomar cargas de trabalho de execução longa sem precisar reinicializar o trabalho completamente. Os pontos de verificação também podem ser usados com instantâneos. Instantâneos são cópias somente leitura do sistema de arquivos que são feitos em um ponto no tempo. Os pontos de verificação podem ser considerados específicos ao aplicativo ou dependentes dele, mas os instantâneos são relevantes no nível do sistema de arquivos.

Os pontos de verificação e os instantâneos consomem IOPS e armazenamento. Sendo assim, eles afetam o desempenho geral do sistema de arquivos dependendo de sua frequência e da quantidade de dados envolvidos.

Simultaneidade

O número de threads e clientes simultâneos é outro fator a ser considerado ao selecionar o sistema de arquivos. Muitas cargas de trabalho de HPC exigem simultaneidade significativa durante as fases de inicialização do trabalho e de resultados, possivelmente com centenas ou milhares de threads. Por exemplo, um trabalho pode ser inicializado em cem computadores de 16 núcleos, cada um deles operando um ou dois threads simultâneos. A simultaneidade de threads, nesse caso, poderia ser de 1.600 a 3.200 threads. Todos esses threads podem estar lendo binários (bibliotecas, cadeias de ferramentas e assim por diante) que são necessários para que o trabalho possa continuar. Para minimizar o tempo de execução do trabalho, o sistema de armazenamento subjacente precisa ser capaz de fornecer respostas rápidas a essas solicitações de leitura.

O mesmo trabalho pode parar de exigir qualquer acesso simultâneo. Ou pode exigir acesso contínuo de mais dados de arquivo ou gravar resultados intermediários para outros threads no trabalho lerem.

Tamanho e contagem de arquivos

Quando seleciona o armazenamento de arquivos, você também precisa considerar o número e o tamanho médio dos arquivos. Uma carga de trabalho que consome 2 TB de dados tem características de desempenho diferentes se esses 2 TB são compostos por cem arquivos de 20 GB ou por dez mil arquivos de 200 MB. Especialmente se os dez mil arquivos estiverem aninhados em estruturas de diretório profundas.

Recomendamos que você identifique o conjunto de trabalho de dados mais provável. Um conjunto de trabalho é composto pelo tamanho e pela contagem de arquivos máximos potenciais que você requer. Tente identificar as definições máxima e média do conjunto de trabalho e use esses valores máximos para orientar seu planejamento.

Nem sempre é fácil definir um conjunto de trabalho, especialmente para um ambiente, em vez de somente uma carga de trabalho de HPC. Por exemplo, em um dia você pode precisar criar uma pequena simulação usando um conjunto de dados estático. No dia seguinte, talvez precise escalar verticalmente para fazer uma análise maior com saídas e pontos de verificação intermediários.

Verificar seus conhecimentos

1.

Uma cópia somente leitura de um sistema de arquivos feita em um determinado ponto no tempo é conhecida como:

2.

O tamanho e a contagem de arquivos máximos potenciais que a carga de trabalho requer são conhecidos como: