Teste de Performance no Moodle com o JMeter


O JMeter é uma ferramenta essencial para aqueles que buscam garantir a performance e a eficiência de plataformas de e-learning, como o Moodle. Este post tem como objetivo detalhar como realizar um teste de performance no Moodle, utilizando o JMeter, para identificar possíveis gargalos que possam afetar a experiência do usuário.

Em cenários educacionais digitais, é comum que alunos tentem acessar conteúdos na plataforma Moodle e se deparem com tempos de espera prolongados. Uma das possíveis causas para esse problema é o que chamamos de "sobrecarga do usuário". Isso ocorre quando o servidor está configurado para suportar um número limitado de conexões simultâneas, inferior à demanda real. Muitas vezes, o servidor possui capacidade para gerenciar um volume maior de conexões do que o configurado, levando a uma subutilização dos recursos disponíveis.

Para ilustrar como identificar e resolver esse tipo de problema, seguiremos um roteiro detalhado utilizando o JMeter.  Evite realizar este procedimento no ambiente de produção. Execute-o apenas em ambientes de teste ou homologação para garantir a segurança e estabilidade do sistema.

1 - Acesse o arquivo config.php do Moodle e inclua o parâmetro $CFG->tool_generator_users_password = 'senha';
Esse parâmetro permite que você defina uma senha para os usuários que o JMeter criará para realizar o acesso. Substitua senha por uma string de sua escolha, que será utilizada como senha;

2 - Faça login no Moodle como administrador e crie um curso de teste. Para isso, vá em Administração do site > Desenvolvimento > Gerar curso de teste ou acesse diretamente através do URL MOODLE_URL/admin/tool/generator/maketestcourse.php

3 - Para gerar um plano de teste para o JMeter, navegue no Moodle em Administração do site > Desenvolvimento > Gerar plano de teste JMeter, ou acesse diretamente pelo URL MOODLE_URL/admin/tool/generator/maketestplan.php Realize as configurações necessárias e gere os arquivos de teste.

4 - No JMeter, faça o upload dos dois arquivos gerados na etapa anterior. Configure o URL do Moodle e ajuste alguns parâmetros conforme necessário.

5 - Execute o teste de estresse no JMeter. Para isso, modifique as configurações de algumas variáveis no Apache, definindo dois cenários distintos para a quantidade de conexões permitidas:

Cenário I:

<IfModule mpm_prefork_module>
    ServerLimit             5
    StartServers            1
    MinSpareServers         2
    MaxSpareServers         2
    MaxRequestWorkers       5
    MaxConnectionsPerChild  100
</IfModule>
Neste cenário, é provável que nem todos os recursos da máquina sejam utilizados, resultando em uma lentidão no site.

Cenário II:

<IfModule mpm_prefork_module>
    ServerLimit             3000
    StartServers            20
    MinSpareServers         25
    MaxSpareServers         75
    MaxRequestWorkers       3000
    MaxConnectionsPerChild  10000
</IfModule>
Neste cenário, dependendo da carga de estresse e da configuração do servidor, todos os recursos da máquina podem ser utilizados, mas o acesso ao Moodle não apresentará lentidão.

Esses cenários são prototipados, ou seja, simulados com o objetivo de ajudar a encontrar a configuração ideal para cada caso específico. É importante mencionar que nem todas as variáveis de performance foram abordadas neste texto, limitando-se apenas a mapear uma das situações mais recorrentes.