Por que o desempenho do meu sistema de arquivos EFS está lento?
Meu desempenho do Amazon Elastic File System (Amazon EFS) está muito lento. Quero identificar a causa e solucionar o problema.
Breve descrição
A arquitetura distribuída de várias zonas de disponibilidade do Amazon EFS resulta em uma pequena sobrecarga de latência para cada operação de arquivo. A throughput geral costuma aumentar à medida que o tamanho médio da E/S aumenta, pois a sobrecarga é amortizada em uma quantidade maior de dados.
O desempenho do Amazon EFS depende de vários fatores, entre eles:
- Classe de armazenamento do EFS.
- Modos de desempenho e throughput.
- Tipo de operações realizadas no EFS (como uso intensivo de metadados, etc.).
- Propriedades dos dados armazenados no EFS (como tamanho e número de arquivos).
- Opções de montagem.
- Limitações no lado do cliente.
Resolução
Classe de armazenamento do EFS
Para obter mais informações, consulte Resumo do desempenho.
Modos de desempenho e throughput
Modos de desempenho
O Amazon EFS oferece dois modos de desempenho: uso geral e E/S máxima. As aplicações podem escalar suas IOPS elasticamente até o limite associado ao modo de desempenho.
Para determinar qual modo de desempenho usar, consulte Modos de desempenho.
Modos de throughput
As workloads baseadas em arquivos normalmente geram altos níveis de throughput por curtos períodos, mas geram níveis mais baixos de throughput por períodos mais longos. O Amazon EFS foi projetado para atingir altos níveis de throughput por períodos de tempo.
A throughput e o IOPS configuradas afetam o desempenho do Amazon EFS.
É uma prática recomendada comparar seus requisitos de workload para ajudar a selecionar os modos apropriados de throughput e desempenho. Ao selecionar a throughput provisionada, selecione valores que atendam às suas necessidades de workload. Para analisar a throughput e a IOPS consumidas pelo seu sistema de arquivos, consulte Using metric math with Amazon EFS.
O Amazon EFS pode escalar até petabytes de volume de armazenamento com três modos de throughput: intermitente, elástica e provisionada. Se você usar uma throughput intermitente, a throughput no Amazon EFS aumentará à medida que o sistema de arquivos crescer. Se você usar a throughput provisionada, poderá provisionar instantaneamente a throughput do seu sistema de arquivos, independentemente da quantidade de dados armazenados. Com a throughput elástica, é possível aumentar ou diminuir a throughput com base na workload. Para obter mais informações sobre modos de throughput, consulte Como funcionam os créditos de expansão do Amazon EFS?
Tipos de operações realizadas na instância do EC2
Operações de E/S de metadados
O desempenho da EFS sofre nas seguintes situações:
- Quando os tamanhos dos arquivos são pequenos porque o sistema é distribuído. A arquitetura distribuída resulta em uma pequena sobrecarga de latência para cada operação de arquivo. Devido a essa latência por operação, a throughput geral geralmente aumenta à medida que o tamanho médio da E/S aumenta, pois a sobrecarga é amortizada em mais dados.
- O desempenho em sistemas de arquivos compartilhados é prejudicado quando uma workload ou operação gerar muitos arquivos pequenos em série. Isso faz com que a sobrecarga de cada operação aumente.
- A E/S de metadados ocorrerá se a sua aplicação executar operações com uso intenso de metadados, como "ls", "rm", "mkdir", "rmdir", "lookup", "getattr" ou "setattr" e assim por diante. Qualquer operação que exija que o sistema busque o endereço de um bloco específico é considerada uma workload com uso intenso de metadados. Para obter mais informações, consulte as informações a seguir:
Metering: How Amazon EFS reports file system and object sizes eDicas de desempenho.
Opções de montagem
- Se você montar o sistema de arquivos com amazon-efs-utils, as opções de montagem recomendadas serão aplicadas por padrão.
- Se você usar opções de montagem não padrão, isso poderá prejudicar o desempenho. Por exemplo, se você usar rsize e wsize menores, ou se diminuir ou desativar o Armazenamento em cache de atributos. Verifique a saída do comando mount para ver as opções de montagem atualmente em vigor:
Para obter mais informações, consulte Mount the file system on the EC2 instance and test.
Versão do cliente NFS
O protocolo Network File System (NFS – Sistema de arquivos de rede) 4.1 (NFSv4) oferece melhor desempenho para operações paralelas de leitura de arquivos pequenos (mais de 10.000 arquivos por segundo) em comparação com o NFSv4.0 (menos de 1.000 arquivos por segundo).
Limitações no lado do cliente
Gargalo na instância do EC2
Se a sua aplicação que usa o sistema de arquivos não gerar o desempenho esperado do EFS, otimize essa aplicação. Além disso, compare o host ou serviço na qual ela está hospedada, como Amazon EC2, o AWS Lambda e assim por diante. Uma escassez de recursos na instância do EC2 pode afetar a capacidade da sua aplicação de usar o EFS com eficiência.
Para verificar se o EC2 está subprovisionado para os requisitos da sua aplicação, monitore as métricas do Amazon EC2 CloudWatch, como CPU, Amazon Elastic Block Store (Amazon EBS) e assim por diante. A análise de várias métricas sobre a arquitetura da sua aplicação e requisitos de recursos ajuda a determinar se você deve reconfigurar sua aplicação ou instância de acordo com seus requisitos.
Usar a versão 4.0+ do kernel Linux
Para otimizar o desempenho e evitar vários problemas conhecidos do cliente NFS, é uma prática recomendada usar uma AMI com um kernel Linux versão 4.0 ou mais recente.
Uma exceção a essa regra é o RHEL e o CentOS 7.3 e versões mais recentes. O kernel desses sistemas operacionais recebeu versões retroativas das correções e aprimoramentos aplicados ao NFS v4.1. Para obter mais informações, consulte Suporte do NFS.
Copiar arquivos
Ao copiar arquivos com o comando cp, você pode sentir lentidão. Isso ocorre porque o comando copy é uma operação serial, o que significa que ele copia cada arquivo, um por vez. Se o tamanho do arquivo de cada arquivo for pequeno, a throughput para enviar esse arquivo também será pequena.
Você também pode notar latência ao enviar arquivos. A natureza distribuída do EFS significa que ele deve ser replicado em todos os pontos de montagem e, portanto, há sobrecarga por operação de arquivo. Portanto, latência é o comportamento esperado.
Recomendações
É uma prática recomendada executar operações de E/S paralelas, como com rsync. Se você usar rsync, saiba que cp e rsync funcionam em operações seriais (de thread único) em vez de em operações paralelas. Isso retarda o processo de cópia. Use ferramentas como fpart ou NU Parallel. Fpart é uma ferramenta que ajuda você a classificar árvores de arquivos e empacotá-las em "partições". Fpart vem com um script de shell chamado fpsync, que envolve fpart e rsync para iniciar vários rsync em paralelo. Fpsync fornece seu próprio agendador incorporado. Esse método conclui as tarefas mais rapidamente do que o método serial mais comum.
Para obter mais informações, consulte Amazon EFS performance.
Informações relacionadas

Conteúdo relevante
- feita há 10 diaslg...
- feita há um mêslg...
- feita há 4 meseslg...
- Resposta aceitafeita há 4 meseslg...
- feita há 22 diaslg...
- AWS OFICIALAtualizada há 10 meses
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 10 meses