Performance do Amazon FSx para Lustre
O Amazon FSx para Lustre, desenvolvido no Lustre, o popular sistema de arquivos de alto desempenho, oferece desempenho com aumento horizontal da escala que aumenta linearmente com o tamanho do sistema de arquivos. Os sistemas de arquivos do Lustre escalam horizontalmente entre vários discos e servidores de arquivos. Essa escalabilidade disponibiliza a todos os clientes o acesso direto aos dados armazenados em cada disco para remover muitos dos gargalos presentes nos sistemas de arquivos tradicionais. O Amazon FSx para Lustre se baseia na arquitetura escalável do Lustre para oferecer suporte a altos níveis de desempenho para um grande número de clientes.
Tópicos
Como funcionam os sistemas de arquivos do FSx para Lustre
Cada sistema de arquivos do FSx para Lustre consiste nos servidores de arquivos com os quais os clientes se comunicam e em um conjunto de discos anexados a cada servidor de arquivos que armazena seus dados. Cada servidor de arquivos emprega um cache na memória rápido para aprimorar a performance dos dados acessados com mais frequência. Além disso, os sistemas de arquivos baseados em HDD podem ser provisionados com um cache de leitura baseado em SSD para aprimorar ainda mais a performance dos dados acessados com mais frequência. Quando um cliente acessa dados que estão armazenados na memória ou no cache baseado em SSD, o servidor de arquivos não precisa lê-los usando o disco, o que reduz a latência e aumenta a quantidade total de throughput que você pode gerar. O diagrama a seguir ilustra os caminhos de uma operação de gravação, uma operação de leitura atendida usando o disco e uma operação de leitura atendida usando a memória ou o cache baseado em SSD.
Quando você realiza a leitura de dados armazenados na memória ou no cache baseado em SSD do servidor de arquivos, a performance do sistema de arquivos é determinada pelo throughput da rede. Quando você grava dados no sistema de arquivos ou quando realiza a leitura de dados que não estão armazenados no cache na memória, a performance do sistema de arquivos é determinada pelo menor throughput da rede e do disco.
Ao provisionar um sistema de arquivos do Lustre baseado em HDD com um cache baseado em SSD, o Amazon FSx cria um cache baseado em SSD que é automaticamente dimensionado para 20% da capacidade de armazenamento em HDD do sistema de arquivos. Fazer isso fornece latências inferiores a um milissegundo e IOPS mais altas para arquivos acessados com frequência.
Performance agregada do sistema de arquivos
O throughput que um sistema de arquivos do FSx para Lustre oferece suporte é proporcional a sua capacidade de armazenamento. Os sistemas de arquivos do Amazon FSx para Lustre são escalados para centenas de Gigabits por segundo (GBps) de throughput e milhões de IOPS. O Amazon FSx para Lustre também oferece suporte ao acesso simultâneo ao mesmo arquivo ou ao diretório de milhares de instâncias de computação. Esse acesso possibilita a rápida verificação de dados da memória até o armazenamento da aplicação, que é uma técnica comum em computação de alta performance (HPC). Você podel aumentar a quantidade de armazenamento e a capacidade de throughput, conforme necessário, a qualquer momento após a criação do sistema de arquivos. Para obter mais informações, consulte Como gerenciar a capacidade de armazenamento.
Os sistemas de arquivos do FSx para Lustre fornecem um throughput de leitura intermitente usando um mecanismo de crédito de E/S de rede para alocar a largura de banda da rede com base na utilização média da largura de banda. Os sistemas de arquivos acumulam créditos quando o uso da largura de banda da rede está abaixo dos limites da linha de base e esses créditos podem ser usados na execução de transferências de dados pela rede.
As tabelas apresentadas a seguir mostram a performance para a qual as opções de implantação do FSx para Lustre foram projetadas.
Tipo de implantação | Throughput da rede (MB/s/TiB de armazenamento provisionado) | IOPS da rede (IOPS/TiB de armazenamento provisionado) | Armazenamento em cache (GiB de RAM/TiB de armazenamento provisionado) | Latências do disco por operação de arquivo (milissegundos, P50) | Throughput do disco (MBps/TiB de armazenamento ou de cache baseado em SSD provisionado) | ||
---|---|---|---|---|---|---|---|
Linha de base |
Intermitência |
Linha de base |
Intermitência |
||||
SCRATCH_2 | 200 | 1300 | Linha de base de dezenas de milhares Intermitência de centenas de milhares |
6.7 |
Metadados: inferiores a um milissegundo Dados: inferiores a um milissegundo |
200 (leitura) 100 (gravação) |
‐ |
PERSISTENT-125 | 320 | 1300 | 3.4 |
125 |
500 | ||
PERSISTENT-250 | 640 | 1300 | 6.8 |
250 |
500 | ||
PERSISTENT-500 | 1300 | ‐ | 13.7 | 500 | ‐ |
||
PERSISTENT-1000 | 2600 | ‐ | 27.3 | 1000 | ‐ |
Tipo de implantação | Throughput da rede (MB/s/TiB de armazenamento ou de cache baseado em SSD provisionado) | IOPS da rede (IOPS/TiB de armazenamento provisionado) | Armazenamento em cache (GiB de RAM/TiB de armazenamento provisionado) | Latências do disco por operação de arquivo (milissegundos, P50) | Throughput do disco (MBps/TiB de armazenamento ou de cache baseado em SSD provisionado) | ||
---|---|---|---|---|---|---|---|
Linha de base |
Intermitência |
Linha de base |
Intermitência |
||||
PERSISTENT-12 | |||||||
Armazenamento em HDD | 40 | 375* |
Linha de base de dezenas de milhares Intermitência de centenas de milhares |
0.4 memory |
Metadados: inferiores a um milissegundo Dados: milissegundo de um dígito |
12 |
80 (leitura) 50 (gravação) |
Armazenamento em cache de leitura baseado em SSD |
200 |
1,900 |
Armazenamento em cache baseado em SSD de 200 |
Dados: inferiores a um milissegundo |
200 |
- |
|
PERSISTENT-40 | |||||||
Armazenamento em HDD | 150 | 1,300* |
Linha de base de dezenas de milhares Intermitência de centenas de milhares |
1.5 |
Metadados: inferiores a um milissegundo Dados: milissegundo de um dígito |
40 |
250 (leitura) 150 (gravação) |
Armazenamento em cache de leitura baseado em SSD |
750 |
6500 |
200 SSD cache |
Dados: inferiores a um milissegundo |
200 |
- |
Tipo de implantação | Throughput da rede (MB/s por TiB de armazenamento provisionado) | IOPS da rede (IOPS por TiB de armazenamento provisionado) | Armazenamento em cache (GiB por TiB de armazenamento provisionado) | Latências do disco por operação de arquivo (milissegundos, P50) | Throughput do disco (MBs por TiB de armazenamento ou de cache baseado em SSD provisionado) | ||
---|---|---|---|---|---|---|---|
Linha de base |
Intermitência |
Linha de base |
Intermitência |
||||
PERSISTENT-50 | 250 | 1,300* | Linha de base de dezenas de milhares Intermitência de centenas de milhares |
2.2 RAM |
Metadados: inferiores a um milissegundo Dados: inferiores a um milissegundo |
50 | 240 |
PERSISTENT-100 | 500 | 1,300* | 4.4 RAM | 100 | 240 | ||
PERSISTENT-200 | 750 | 1,300* | 8.8 RAM | 200 | 240 |
nota
*Os sistemas de arquivos persistentes nas seguintes Regiões da AWS fornecem intermitência de rede de até 530 MB/s por TiB de armazenamento: África (Cidade do Cabo), Ásia-Pacífico (Hong Kong), Asia Pacific (Osaka), Ásia-Pacífico (Singapura), Canadá (Central), Europa (Frankfurt), Europa (Londres), Europa (Milão), Europa (Estocolmo), Oriente Médio (Bahrein), América do Sul (São Paulo), China e Oeste dos EUA (Los Angeles).
Exemplo: linha de base agregada e throughput de intermitência
O exemplo apresentado a seguir ilustra como a capacidade de armazenamento e o throughput do disco afetam a performance do sistema de arquivos.
Um sistema de arquivos persistente com capacidade de armazenamento de 4,8 TiB e 50 MB/s por TiB de throughput por unidade de armazenamento fornece um throughput do disco de linha de base agregada de 240 MB/s e um throughput do disco de intermitência de 1,152 GB/s.
Independentemente do tamanho do sistema de arquivos, o Amazon FSx para Lustre disponibiliza latências consistentes inferiores a um milissegundo para operações de arquivos.
Desempenho de metadados do sistema de arquivos
As operações de E/S por segundo (IOPS) de metadados do sistema de arquivos determinam o número de arquivos e diretórios que você pode criar, listar, ler e excluir por segundo. As IOPS de metadados são provisionadas automaticamente em sistemas de arquivos do FSx para Lustre com base na capacidade de armazenamento que você provisiona.
Os sistemas de arquivos Persistent_2 permitem que você provisione IOPS de metadados independentemente da capacidade de armazenamento e promova maior visibilidade sobre o número e o tipo de IOPS de metadados que as instâncias de cliente estão gerando em seu sistema de arquivos.
Com os sistemas de arquivos Persistent_2 do FSx para Lustre, o número de IOPS de metadados que você provisiona e o tipo de operação de metadados determinam a taxa de operações de metadados que seu sistema de arquivos pode atender. O nível de IOPS de metadados que você provisiona determina o número de IOPS provisionadas para os discos de metadados do seu sistema de arquivos.
Tipo de operação | Operações que você pode conduzir por segundo para cada IOPS de metadados provisionadas |
---|---|
Criar, abrir e fechar arquivos |
2 |
Excluir arquivo |
1 |
Criar e renomear diretórios |
0.1 |
Exclusão de diretório |
0.2 |
Você pode optar por provisionar IOPS de metadados usando o modo automático ou o modo provisionado pelo usuário. No modo Automático, o Amazon FSx provisiona automaticamente IOPS de metadados com base na capacidade de armazenamento do seu sistema de arquivos, de acordo com a tabela abaixo:
Capacidade de armazenamento do sistema de arquivos | IOPS de metadados incluídos no modo automático |
---|---|
1.200 GiB |
1500 |
2.400 GiB |
3000 |
4.800 a 9.600 GiB |
6000 |
12.000 a 45.600 GiB |
12.000 |
≥ 48000 GiB |
12.000 IOPS por 24.000 GiB |
No modo provisionado pelo usuário, você pode optar por especificar o número de IOPS de metadados a serem provisionadas. Você paga pelas IOPS de metadados provisionadas acima do número padrão de IOPS de metadados para seu sistema de arquivos.
Layout de armazenamento do sistema de arquivos
Todos os dados de arquivos no Lustre são armazenados em volumes de armazenamento chamados destinos de armazenamento de objetos (OSTs). Todos os metadados de arquivos, incluindo nomes de arquivos, carimbos de data/hora, permissões e muito mais, são armazenados em volumes de armazenamento chamados destinos de metadados (MDTs). Os sistemas de arquivos do Amazon FSx para Lustre são compostos por um ou mais MDTs e vários OSTs. Cada OST tem, aproximadamente, 1 a 2 TiB de tamanho, dependendo do tipo de implantação do sistema de arquivos. O Amazon FSx para Lustre distribui os dados de arquivos pelos OSTs que compõem o sistema de arquivos para equilibrar a capacidade de armazenamento com o throughput e a carga de IOPS.
Para visualizar o uso de armazenamento do MDT e dos OSTs que compõem o sistema de arquivos, execute o comando apresentado a seguir em um cliente que tenha o sistema de arquivos montado.
lfs df -h
mount/path
A saída deste comando é semelhante à apresentada a seguir.
UUID bytes Used Available Use% Mounted on
mountname
-MDT0000_UUID 68.7G 5.4M 68.7G 0% /fsx[MDT:0]mountname
-OST0000_UUID 1.1T 4.5M 1.1T 0% /fsx[OST:0]mountname
-OST0001_UUID 1.1T 4.5M 1.1T 0% /fsx[OST:1] filesystem_summary: 2.2T 9.0M 2.2T 0% /fsx
Distribuição de dados no sistema de arquivos
É possível otimizar a performance de throughput do seu sistema de arquivos com a distribuição de arquivos. O Amazon FSx para Lustre distribui automaticamente os arquivos entre os OSTs para garantir que os dados sejam fornecidos por todos os servidores de armazenamento. Você pode aplicar um conceito semelhante no nível do arquivo ao configurar como os arquivos são distribuídos em diversos OSTs.
O termo “distribuição” indica que os arquivos podem ser divididos em diversos fragmentos que são armazenados em diferentes OSTs. Quando um arquivo é distribuído em diversos OSTs, as solicitações de leitura ou de gravação para o arquivo são distribuídas por esses OSTs, aumentando o throughput agregado ou a IOPS que as aplicações podem gerar por meio dele.
A seguir, são apresentados os layouts padrão para sistemas de arquivos do Amazon FSx para Lustre.
Para sistemas de arquivos criados antes de 18 de dezembro de 2020, o layout padrão especifica uma contagem de distribuição de um. Isso significa que, a menos que um layout diferente seja especificado, cada arquivo criado no Amazon FSx para Lustre usando ferramentas padrão do Linux será armazenado em um único disco.
Para sistemas de arquivos criados após 18 de dezembro de 2020, o layout padrão corresponde a um layout de arquivos progressivo, no qual arquivos com tamanhos inferiores a 1 GiB são armazenados em uma distribuição e arquivos com tamanhos superiores são atribuídos a uma contagem de distribuição de cinco.
Para sistemas de arquivos criados após 25 de agosto de 2023, o layout padrão corresponde a um layout de arquivos progressivo de quatro componentes, o qual é explicado em Layouts de arquivos progressivos.
Para todos os sistemas de arquivos, independentemente da data de criação, os arquivos importados do Amazon S3 não usam o layout padrão. Eles usam o layout presente no parâmetro
ImportedFileChunkSize
do sistema de arquivos. Os arquivos importados do S3 com tamanhos superiores aImportedFileChunkSize
serão armazenados em diversos OSTs com uma contagem de distribuição de(FileSize / ImportedFileChunksize) + 1
. O valor padrão deImportedFileChunkSize
é 1 GiB.
É possível visualizar a configuração de layout de um arquivo ou de um diretório usando o comando lfs getstripe
.
lfs getstripe
path/to/filename
Este comando informa a contagem de distribuição, o tamanho da distribuição e o deslocamento da distribuição de um arquivo. A contagem de distribuição corresponde ao número de OSTs para os quais o arquivo é distribuído. O tamanho da distribuição corresponde à quantidade de dados contínuos que são armazenados em um OST. O deslocamento da distribuição corresponde ao índice do primeiro OST para o qual o arquivo é distribuído.
Modificação da configuração de distribuição
Os parâmetros de layout de um arquivo são definidos quando o arquivo é criado pela primeira vez. Use o comando lfs setstripe
para criar um arquivo novo e em branco com um layout especificado.
lfs setstripe
filename
--stripe-countnumber_of_OSTs
O comando lfs setstripe
afeta somente o layout de um novo arquivo. Use-o para especificar o layout de um arquivo antes de criá-lo. Você também pode definir um layout para um diretório. Após ser definido em um diretório, esse layout é aplicado a cada novo arquivo adicionado ao diretório, mas não aos arquivos existentes. Qualquer novo subdiretório criado também herdará o novo layout, que será aplicado a qualquer novo arquivo ou diretório criado nesse subdiretório.
Para modificar o layout de um arquivo existente, use o comando lfs migrate
. Este comando copia o arquivo, conforme necessário, para distribuir o conteúdo de acordo com o layout especificado no comando. Por exemplo, arquivos anexados ou aumentados em tamanho não alteram a contagem de distribuição, portanto, é necessário migrá-los para alterar o layout do arquivo. Como alternativa, é possível criar um novo arquivo usando o comando lfs setstripe
para especificar o layout, copiar o conteúdo original para o novo arquivo e, em seguida, renomear o novo arquivo para substituir o arquivo original.
Pode haver casos em que a configuração de layout padrão não seja ideal para a workload. Por exemplo, um sistema de arquivos com dezenas de OSTs e um grande número de arquivos de vários gigabytes pode obter uma performance superior ao realizar a distribuição dos arquivos para mais do que o valor de contagem de distribuição padrão de cinco OSTs. A criação de arquivos grandes com contagens de distribuições baixas pode causar gargalos na performance de E/S e também fazer com que os OSTs fiquem cheios. Nesse caso, você pode criar um diretório com uma contagem de distribuição maior para esses arquivos.
Configurar um layout distribuído para arquivos grandes (especialmente arquivos maiores que um gigabyte) é importante pelos seguintes motivos:
Aprimora o throughput ao permitir que vários OSTs e seus servidores associados contribuam com IOPS, largura de banda da rede e recursos de CPU ao ler e gravar arquivos grandes.
Reduz a probabilidade de que um pequeno subconjunto de OSTs se torne um ponto de acesso que limita a performance geral da workload.
Impede que um único arquivo grande preencha um OST, possivelmente causando erros de disco cheio.
Não existe uma configuração única de layout que seja ideal para todos os casos de uso. Para obter orientação detalhada sobre os layouts de arquivos, consulte Managing File Layout (Striping) and Free Space
O layout distribuído é mais importante para arquivos grandes, especialmente para casos de uso em que os arquivos têm regularmente centenas de megabytes ou mais. Por esse motivo, o layout padrão para um novo sistema de arquivos atribui uma contagem de distribuição de cinco para arquivos com tamanho superior a 1 GiB.
A contagem de distribuição é o parâmetro de layout que você deve ajustar para sistemas que oferecem suporte a arquivos grandes. A contagem de distribuição especifica o número de volumes de OST que conterão fragmentos de um arquivo distribuído. Por exemplo, com uma contagem de distribuição de 2 e um tamanho da distribuição de 1 MiB, o Lustre grava fragmentos alternativos de 1 MiB de um arquivo em cada um dos 2 OSTs.
A contagem de distribuição efetiva corresponde ao menor número entre o número real de volumes de OST e o valor de contagem de distribuição especificado. É possível usar o valor especial de contagem de distribuição de
-1
para indicar que as distribuições devem ser colocadas em todos os volumes de OST.A definição de uma contagem de distribuição grande para arquivos pequenos não é ideal, pois para algumas operações, o Lustre requer idas e vindas da rede para cada OST no layout, mesmo que o arquivo seja muito pequeno para consumir espaço em todos os volumes de OST.
Você pode configurar um layout de arquivo progressivo (PFL) que permite que o layout de um arquivo seja alterado com o tamanho. Uma configuração de PFL pode simplificar o gerenciamento de um sistema de arquivos que tem uma combinação de arquivos grandes e pequenos sem que você tenha necessidade de definir explicitamente uma configuração para cada arquivo. Para obter mais informações, consulte Layouts de arquivos progressivos.
Por padrão, o tamanho da distribuição é 1 MiB. A definição de um deslocamento de distribuição pode ser útil em circunstâncias especiais, mas, em geral, é melhor deixá-lo sem especificação e usar o padrão.
Layouts de arquivos progressivos
É possível especificar uma configuração de layout de arquivo progressivo (PFL) para um diretório com a finalidade de especificar diferentes configurações de distribuição para arquivos pequenos e grandes antes de preenchê-lo. Por exemplo, você pode definir um PFL no diretório de nível superior antes que os dados sejam gravados em um novo sistema de arquivos.
Para especificar uma configuração de PFL, use o comando lfs setstripe
com opções -E
para especificar componentes de layout para arquivos de tamanhos diferentes, como o seguinte comando:
lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32
/mountname/directory
Este comando define quatro componentes de layout:
O primeiro componente (
-E 100M -c 1
) indica um valor de contagem de distribuição de 1 para arquivos de até 100 MiB de tamanho.O segundo componente (
-E 10G -c 8
) indica uma contagem de distribuição de 8 para arquivos de até 10 GiB de tamanho.O terceiro componente (
-E 100G -c 16
) indica uma contagem de distribuição de 16 para arquivos de até 100 GiB de tamanho.O quarto componente (
-E -1 -c 32
) indica uma contagem de distribuição de 32 para arquivos com tamanho superior a 100 GiB.
Importante
Anexar dados a um arquivo criado com um layout PFL preencherá todos os componentes do layout. Por exemplo, com o comando de quatro componentes mostrado acima, se você criar um arquivo de 1 MiB e, em seguida, adicionar dados ao final dele, o layout do arquivo será ampliado para ter uma contagem de faixas de -1, ou seja, abrangendo todos os OSTs no sistema. Isso não significa que os dados serão gravados em cada OST, mas uma operação, por exemplo, a leitura do tamanho do arquivo, enviará uma solicitação paralelamente a cada OST, adicionando uma carga de rede significativa ao sistema de arquivos.
Portanto, tome cuidado em relação a limitar a contagem de distribuição para qualquer arquivo pequeno ou médio que possa, posteriormente, ter dados anexados a ele. Como os arquivos de log geralmente são desenvolvidos com a adição de novos registros, o Amazon FSx para Lustre atribui uma contagem de distribuição padrão de um a qualquer arquivo criado no modo de acréscimo, independentemente da configuração de distribuição padrão especificada pelo diretório primário.
A configuração de PFL padrão nos sistemas de arquivos do Amazon FSx para Lustre criados após 25 de agosto de 2023 é definida com este comando:
lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32
/mountname
Os clientes com workloads que têm acesso com alta simultaneidade a arquivos médios e grandes, provavelmente, serão beneficiados com um layout com mais distribuições em tamanhos menores e distribuição em todos os OSTs para os arquivos maiores, conforme mostrado no exemplo de layout de quatro componentes.
Monitoramento da performance e do uso
A cada minuto, o Amazon FSx para Lustre emite métricas de uso relacionadas com cada disco (MDT e OST) para o Amazon CloudWatch.
Para visualizar detalhes agregados de uso do sistema de arquivos, é possível consultar a estatística Sum de cada métrica. Por exemplo, a estatística Sum de DataReadBytes
relata o throughput total de leitura visto por todos os OSTs em um sistema de arquivos. De forma semelhante, a estatística Sum de FreeDataStorageCapacity
relata a capacidade total de armazenamento disponível para dados de arquivos no sistema de arquivos.
Para obter mais informações sobre como monitorar a performance do sistema de arquivos, consulte Monitorar sistemas de arquivos do Amazon FSx para Lustre.
Dicas de performance
Ao usar o Amazon FSx para Lustre, lembre-se das dicas de performance apresentadas a seguir. Para saber sobre limites de serviço, consulte Cotas para o Amazon FSx para Lustre.
-
Tamanho médio de E/S: como o Amazon FSx para Lustre é um sistema de arquivos de rede, cada operação de arquivo passa por idas e vindas entre o cliente e o Amazon FSx para Lustre, incorrendo em uma pequena sobrecarga de latência. Por causa dessa latência por operação, o throughput geral normalmente aumenta à medida que o tamanho de E/S cresce, porque a sobrecarga é amortizada em uma quantidade de dados maior.
-
Modelo de solicitação: ao habilitar as gravações assíncronas em seu sistema de arquivos, as operações de gravação pendentes serão armazenadas em buffer na instância do Amazon EC2 antes de serem gravadas no Amazon FSx para Lustre de forma assíncrona. Normalmente, gravações assíncronas têm latências mais baixas. Ao executar gravações assíncronas, o kernel usa memória adicional para armazenamento em cache. Um sistema de arquivos que habilitou gravações síncronas emite solicitações síncronas para o Amazon FSx para Lustre. Cada operação passa por idas e vindas entre o cliente e o Amazon FSx para Lustre.
nota
O modelo de solicitação escolhido tem compensações em termos de consistência (se você estiver usando várias instâncias do Amazon EC2) e velocidade.
-
Limite o tamanho do diretório: para obter o desempenho ideal de metadados nos sistemas de arquivos Persistent_2 do FSx para Lustre, limite cada diretório a menos de 100 mil arquivos. A limitação do número de arquivos em um diretório reduz o tempo necessário para que o sistema de arquivos adquira um bloqueio no diretório principal.
-
Instâncias do Amazon EC2: as aplicações que executam um grande número de operações de leitura e de gravação provavelmente precisam de mais memória ou capacidade de computação do que as aplicações que não o fazem. Ao iniciar as instâncias do Amazon EC2 para a workload com uso intensivo de computação, escolha tipos de instâncias com a quantidade desses recursos que é requerida para sua aplicação. As características de performance dos sistemas de arquivos do Amazon FSx para Lustre não dependem do uso de instâncias otimizadas para o Amazon EBS.
-
Ajuste recomendado da instância de cliente para um desempenho ideal
Para todos os tipos e tamanhos de instâncias de clientes, recomendamos aplicar o seguinte ajuste:
sudo lctl set_param osc.*.max_dirty_mb=64
Para tipos de instâncias de clientes com memória superior a 64 GiB, recomendamos aplicar o seguinte ajuste:
sudo lctl set_param ldlm.namespaces.*.lru_max_age=600000 sudo lctl set_param ldlm.namespaces.*.lru_size=<100 *
number_of_CPUs
>Para tipos de instâncias de clientes com mais de 64 núcleos de vCPU, recomendamos aplicar o seguinte ajuste:
echo "options ptlrpc ptlrpcd_per_cpt_max=32" >> /etc/modprobe.d/modprobe.conf echo "options ksocklnd credits=2560" >> /etc/modprobe.d/modprobe.conf # reload all kernel modules to apply the above two settings sudo reboot
Após a montagem do cliente, o seguinte ajuste precisa ser aplicado:
sudo lctl set_param osc.*OST*.max_rpcs_in_flight=32 sudo lctl set_param mdc.*.max_rpcs_in_flight=64 sudo lctl set_param mdc.*.max_mod_rpcs_in_flight=50
Observe que
lctl set_param
é conhecido por não persistir durante a reinicialização. Como esses parâmetros não podem ser definidos de forma permanente do lado do cliente, é recomendável implementar tarefas do Cron de inicialização para definir a configuração com os ajustes recomendados. -
Equilíbrio da workload entre OSTs: em alguns casos, a workload não está gerando o throughput agregado que o sistema de arquivos pode fornecer (200 MB/s por TiB de armazenamento). Nesse caso, você poderá usar as métricas do CloudWatch para solucionar problemas se a performance for afetada por um desequilíbrio nos padrões de E/S da workload. Para identificar se essa é a causa, consulte a métrica Maximum do CloudWatch para o Amazon FSx para Lustre.
Em alguns casos, essa estatística mostra uma carga igual ou superior a 240 MBps de throughput (a capacidade de throughput de um único disco do Amazon FSx para Lustre de 1,2 TiB). Nesses casos, a workload não está distribuída uniformemente pelos discos. Se for esse o caso, você poderá usar o comando
lfs setstripe
para modificar a distribuição dos arquivos que a workload acessa com mais frequência. Para obter uma performance ideal, distribua arquivos com requisitos de alto throughput em todos os OSTs que compõem o sistema de arquivos.Se os arquivos forem importados de um repositório de dados, você poderá adotar outra abordagem para distribuir uniformemente os arquivos de alto throughput em seus OSTs. Para fazer isso, é possível modificar o parâmetro
ImportedFileChunkSize
ao criar seu próximo sistema de arquivos do Amazon FSx para Lustre.Por exemplo, suponha que a workload use um sistema de arquivos de 7,0 TiB (que é composto por seis OSTs de 1,17 TiB) e precise gerar alto throughput em arquivos de 2,4 GiB. Nesse caso, você pode definir o valor
ImportedFileChunkSize
como(2.4 GiB / 6 OSTs) = 400 MiB
para que os arquivos sejam distribuídos uniformemente pelos OSTs do sistema de arquivos. -
Cliente do Lustre para IOPS de metadados: se o seu sistema de arquivos tiver uma configuração de metadados especificada, recomendamos que você instale um cliente do Lustre 2.15 ou um cliente do Lustre 2.12 com uma das seguintes versões do sistema operacional: Amazon Linux 2023; Amazon Linux 2; Red Hat/Rocky Linux 8.9, 8.10 ou 9.x; CentOS 8.9 ou 8.10; Ubuntu 22 com kernel 6.2 ou 6.5; ou Ubuntu 20.