Aqui vou relatar um problema que passei com um cliente que possui mais de 10.000 usuário ativos no Moodle e que passou por um upgrade.

A moodledata é a pasta de arquivos que são enviados ou criados pela interface do Moodle. Uma vez que é um diretório, ele pode ter um nome diferente e localizado em qualquer parte do servidor.

A moodledata tende a ser uma pasta com muitos arquivos e crescer consideravelmente quando o Moodle possui grande número de alunos. E isso requer mais e mais espaço em disco.

Então, o que se pode fazer?

Comecei a fazer testes e colocar a pasta moodledata em uma partição montada no S3 da Amazon usando o s3fs e o resultado foi péssimo. Moodle ficou extremamente lento e impossível de navegar.

Eu achei muito estranho porque várias pessoas haviam dito "coloca no S3 e seja feliz" e eu o fiz e não fique nada feliz. Então comecei a tentar descobrir o porque desta lentidão.

Mais o que aconteceu?

O que acontece é que a moodledata possui todos os arquivos estáticos do Moodle, seu cache, imagens, fotos de usuários, upload e muito mais. E estes arquivos, principalmente os arquivos de cache precisam ser acessados inúmeras vezes quando a página é montada. Então se o acesso aos arquivos é lento, isso reflete diretamente na lentidão do Moodle.

Então tentei aumentar o cache do s3fs e isso gerou duplicidade dos arquivos e mesmo assim o tempo de resposta não mudou muita coisa. E esta solução se mostrou simplesmente um fracasso.

Então percebi, mais uma vês, que muita gente simplesmente "joga" as informações na internet sem sequer testar e analisar os resultados.

Gostou? Não esqueça de curtir!

11 comentários

Deixe uma resposta

  1. (PS.: Estamos reformulando nosso site e ele se encontra fora do ar)

    Caro Eduardo, parabéns pelo post. Simples, direto e funcional.

    Agora estou com outra dúvida. Seu artigo é de 2015 e não me lembro como era o CloudFront da AWS há 2 anos atrás. Você já considerou em colocar a pasta moodledata no CloudFront? Tem notícia de alguém que tenha feito?

    Como CloudFront é um CDN optimizado para acesso de arquivos de websites penso que talvez seja uma solução interessante.

    agraço.s

     
  2. Eu já tinha visto estes arquivos postados no github.

    No entanto, como se trata de envio para o S3 e você teve uma experiência muito ruim com o moodledata no S3 foi o motivo do meu comentário/pergunta.

    Você está usando esta solução atualmente em algum projeto em produção? Está lhe satisfazendo?

    Grande abraço.

     
  3. Este processo aqui descreve problema de usar os arquivos no S3 como live. O plug-in que coloquei leva apenas os arquivos para o S3 e não faz leitura dos arquivos.

     
  4. Olá Eduardo, ótimo artigo.
    Com este plugin que você apresentou, você resolveu o problema da velocidade? E habilitou o Transfer acceleration para isso?
    Abraço
    Lucas

     
  5. Transfer acceleration não ajuda em nada

     
  6. Oi Eduardo, obrigado pelo artigo e pelo plugin.

    Dei uma olhada no plugin, mas não entendi se com ele a velocidade de upload no S3 fica resolvida. Você acabou usando o plugin para o EBS SSD no final das contas?

    Abraços!

     
  7. Olá Eduardo, parabéns pelo artigo!

    Gostaria de saber se você tentou habilitar a Aceleração de rede integrada (Amazon S3 Transfer Acceleration https://aws.amazon.com/pt/s3/faqs/#s3ta) e se isso resolveria a situação.

    Abraços

     
  8. Olá, Eduardo, muito bom seu artigo, eu também já havia ouvido falar do S3 para armazenamento do moodledata, admito que quase fiz essa cagada, rsrs, a minha sorte foi que pesquisei algumas opiniões de pessoas que já fizeram isso e para minha sorte fui informado que não era uma boa escolha, por isso resolvi desistir dessa opção, na época o EBS ainda está em fase de teses e não havia opção de criar uma instância aqui no BR, apenas nos EUA tem instâncias disponíveis, mas isso é apenas uma questão de tempo. Obrigado por compartilhar suas experiências Eduardo.

     
  9. Obrigado pelo comentário.