nginx webserver inundando o NFS com solicitações de metadados

1

Tenho uma nuvem simples da AWS usando servidores nginx (EC2s) e uma unidade NFS para armazenar arquivos CMS (EFS). A Amazon tem créditos famosos e fiquei sem créditos em uma nuvem de tráfego muito baixa. Após investigar, o EC2 está inundando o EFS com solicitações de metadados. Eu só não sei como e por quê?

Todos os arquivos no total são 8GB no NFS, são todos arquivos PHP. Arquivos estáticos são transferidos para o S3. O tráfego entre o EC2 e o EFS é de cerca de 1 MB por segundo, no entanto, o tráfego de metadados é de 5 MB por segundo! Isso só chega a 100-300MB por minuto de tráfego de metadados !!!

Depois de verificar o nfsstat e descarregar o tráfego, verifica-se que 90% desse tráfego é o pedido e a resposta do GETATTR.

Mas, observando o EC2, os processadores ligados estão quase adormecidos, então o processamento de 5MB por segundo soa surreal. Não mencionando metadados de 5 MB para transferência de 1 MB.

Gostaria de fazer mais algumas pesquisas, mas meu conhecimento e o Google terminaram, por isso não sei de onde. Tentei utilizar lsof e nsfstats e não consigo encontrar o que no mundo está precisando de muitos metadados. Qualquer ajuda seria muito apreciada.

EDIT: Se você está procurando uma solução para ficar sem créditos da EFS da AWS por causa disso ou de razões semelhantes - os créditos da EFS são baseados no espaço que você está usando. A solução (da equipe de suporte da AWS) é criar arquivos fictícios para aumentar seu saldo de crédito. No meu caso, adicionando 50GB de espaço vazio "vazio" fez o truque via comando:

dd if=/dev/zero of=/path/to/efs/dummyfile bs=1G count=10

Acima, criaremos um arquivo "vazio" de 10 GB no EFS que aumentará seus créditos

    
por Ralf 25.08.2017 / 07:53

0 respostas