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 |
|
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 |
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.