Configuração e Performance do Servidor do Moodle

Configuração e Performance do Servidor do Moodle

por Lino Vaz Moniz -
Número de respostas: 1

Este post tem por objetivo compartilhar algumas experiência sobre configuração e performance do servidor do Moodle. 

Dado ao advento da pandemia, a questão do isolamento social,  a modalidade de ensino online passou a ser mais intensa. Na Plataforma Moodle, alguns administradores do Moodle depararem com acesso simultâneo ao site além do habitual. Daí, vem surgindo muitas questões tais como:

  • Qual é a configuração que deve ser feita no servidor do Moodle para aprimorar performance?

  • Até quantos usuários simultâneos o Moodle suporta? 

Para essas questões não existe uma solução pronta  como receita do bolo. Cada caso é um caso. Cada situação precisa ser analisada com base nas suas particularidades. No entanto, há muitas situações conhecidas que são mais factíveis de problema.  Para abordar esse assunto,  primeiramente vou listar  algumas situações  problemas. Em seguida, vou compartilhar a minha experiência de configuração do servidor. Por último, vou recomendar alguns especialista em gestão de infraestrutura que me ajudam quando o bicho pega. 

Situações problema mais comuns

As seguintes situações geram gargalo e lentidão quando há aumento de carga de acesso:

  • Moodle hospedado em servidor compartilhado divide recurso da máquina (memória e processador) com outros clientes. Isso significa que se houver um aumento de carga de em qualquer site do servidor terá impacto no Moodle.

  • Recurso de máquina insuficiente. É comum  instalar Moodle em servidores virtuais com poucos recursos. Há plano de servidores nas nuvens de 3, 5  e 10 dólares etc. Esse servidores geralmente oferecem baixa capacidade de memória e processador. Neste caso, quando há um aumento de carga de acesso os recursos disponíveis na máquina esgotam esgotam facilmente. 

  • Manter configuração padrão do servidor web. Ao instalar um servidor web PHP, Apache e MySQL manter as configurações padrão da instalação aumenta chance de gargalo ou falha do Moodle. Por exemplo, no MySQL há uma variável que define quantidade máxima de conexão. Essa variável, por padrão, vem configurado com valor 100. Isso significa que se houver acesso simultâneo de acesso ao Moodle que implica mais 100 conexões simultâneas no banco de dados, o Moodle emite uma mensagem de erro sobre acesso ao banco de dados. Isso significa que o servidor web (PHP, Apache e MySQL) precisa ser ajustado em função da especificidade do seu projeto Moodle. Aí entra o trabalho dos especialista em infraestrutura.

Minha experiência com servidor

Aqui vou relatar a minha experiência com a gestão do servidor Moodle. Uma longa caminhada de aprendizado, busca de consultoria com especialista e comparação de projetos que funcionam e que não funcionam.

Comecei usera servidores de Server4you. São servidores muito em conta. Só para ter uma ideia com custo médio de 40 dólar você terá um servidor dedicado com 32 GB RAM 500 GB disco SSD e 8 processador. Usei esses servidores por um bom tempo para instalar antigo sistema GMoodle. Como são servidores dedicados e não cloud, hoje uso para instalar Moodle de legado, ou seja, Moodle com cursos cuja oferta não estão mais ativas. Apenas para consultas de histórico e conteúdo. 

Comecei a separa Moodle de lagado com Moodle de dados de  oferta em andamento, ou seja, Moodle ativo. Agora uso Moodle ativo em servidores da Amazon. Antes ficavam na Digital Ocean, o que hoje é usado para instanciar uma uma máquina com Zabbix. Explorando bem os recursos da Amazon, em alguns projetos tive economia de até 30% no orçamento mensal de hospedagem. 

Ao separar Moodle legado do ativo, revolvi um grande problema. O Moodle legado acomula cursos cuja oferta já encerraram. Assim, o Moodle apenas com oferta vigente fica leve, sem log dos últimos 5 ou 10 anos. Daí ganho performance e economizo com infraestrutura. 

Quanto a performance do banco, uso RDS Aurora. Este é 5 vezes mais rápido que MySQL convencional. O moodledata configuro em serviço EFS um disco compartilhado que pode ser acessado por várias máquinas. Isso viabiliza escalonamento horizontal e vertical com máquinas ec2. O grande desafio da arquitetura da Amazon é usar Lambda para Moodle. Estou pesquisando essa solução. 

Quanto a performance de PHP e apache aplico as configurações orientadas pelo Paulo Ângelo em uma consultoria que prestou para empresa Badiu. 

 

Recomendação de especialista

Os especialista em performance de servidor do Moodle  infraestrutura que eu recomendo estão descrito na tabela a seguir. 

Nome

E-mail

Link 

Paulo Angelo

pa@pauloangelo.com 

Configurar servidor para Moodle. Configuração do servidor Linux, PHP, Apache e MySQL. Relatório de consultoria prestado a empresa Badiu 

Samuel Teixeira

samuelstj@gmail.com

Cluster do Moodle

https://goon.tec.br/blog/index.php/2020/06/06/cluster-moodle/


Configuração de PHP / Apache
https://goon.tec.br/blog/index.php/2020/06/09/cluster-moodle-servidor-de-aplicacao/


Considerações finais

Esse é a minha experiência com servidores. Não há segredo. A solução é monitorar e ajustar. Estudar constantemente as inovações do mercado. Usar o que é mais moderno sem necessariamente apertar o bolso. Quando o bicho pega, tem que apelar para os especialista que entra no motor do processo para ajustar. 

Em resposta à Lino Vaz Moniz

Re: Configuração e Performance do Servidor do Moodle

por Orlando Junior -

Oi Lino, tudo bem?

Estou tentando montar uma infra na AWS para o Moodle ficar em alta disponibilidade e com escalabilidade.
Na proposta já tenho o banco (usando RDS multi AZ) separado da aplicação (duas instâncias EC2 para não termos queda no serviço). As instâncias serão escaladas automaticamente à medida que forem necessárias. E serão excluídas mediante a baixa procura.

Agora o desafio é montar esse EFS com a Moodledata, onde as instâncias vão apontar para a mesma. Vc tem alguma documentação sobre a melhor forma de realizar essa configuração?