Moodle Benchmark
Orientador: Dinailton Silva
Participantes: Adriano Mendes Castanheira Milton Ferreira de Azara Filho Paulo Hernandes Castanheira
Moodle Benchmark
• Moodle– Plataforma de EaD gratuita mais utilizada;– Mais de 60 milhões de usuários;– 6 mil instalações no Brasil.
• Expansão da Educação à Distância no Brasil– Investimentos em programas de capacitação do Governo;
Motivação
Analisar o comportamento da plataforma Moodle (aplicação)
Objetivos
Uso de memória RAM
Uso de CPU Tráfego de rede (entrada e saída)
Traçar um padrão de crescimento destes recursos a medida que o número de usuários aumenta.
Servir de base para dimensionamento da implantação de um servidor Moodle
• Benchmark– Executar um conjunto de avaliações sobre determinadas aplicações,
de modo a obter o desempenho relativo de cada uma delas– A partir dos resultados, realizar alguma comparação entre as mesmas
Fundamentação teórica
• Moodle– Acrônimo de Modular Object Oriented Distance Learning – MOODLE –
é um sistema modular de ensino à distância orientado a objetos.– Conhecido por muitos como AVA (Ambiente Virtual de Aprendizagem)– É uma plataforma de aprendizagem usada para facilitar a criação de
cursos de ensino à distância.
Fundamentação teórica
• Apache Jmeter– É uma aplicação desktop gratuita, opensource,
100% desenvolvida em Java;– Projetada para realizar testes de desempenho;– Cria usuários baseados em threads.
• Zabbix– Ferramenta de gerenciamento que monitora
os elementos e serviços de rede;– Coleta dados através de consultas SNMP;– Gera relatórios de uso de memória RAM,
uso de CPU (%) e tráfego de rede.
Fundamentação teórica
Experimento
• Simular usuários interagindo com a plataforma Moodle– Apache Jmeter.
• Realizado em três etapas:1. Configuração do ambiente Moodle;2. Desenvolvimento do script de testes;3. Simulação: planejamento e execução.
Configuração do ambiente Moodle
Notebook com processador Intel Core I5, dois núcleos, 16GB de memória RAM (Jmeter);
Máquina virtual, com 2GB de memória (Zabbix);
Switch Gigabit Ethernet.
Processador AMD Phenom II X4 B97, 500GB de espaço em disco, 4GB de memória para o banco e 6GB para aplicação;
Configuração do ambiente Moodle
• Aplicação Moodle (Ubuntu 12.10) Apache 2.2.22 PHP 5.4.6-1 Moodle 2.5
• Banco Moodle (Ubuntu 12.10) MySql 5.5.32
Todos os serviços com a configuração padrão
• A aplicação foi separada do banco de dados para facilitar a análise dos resultados; Deixando claro qual a carga gerada pela aplicação; Estratégia usada em ambientes mais robustos.
1000 usuários cadastrados e matriculados na sala;Usuário: estudante1, estudante2,..., estudante(n);Senha: 12345678
• Desenvolvido com a ferramenta Jmeter, tem como finalidade simular os usuários interagindo com o sistema– Uso de threads;– Gerenciadores de cache, cookies e cabeçalhos HTTP;– Definição de variáveis locais e globais;– Funções pré-definidas pela ferramenta;– Requisições do tipo HTTP;– Contadores, laços, geradores de atraso, extratores de expressões
regulares, dentre outros.
Desenvolvimento do script de testes
• Executar o script de testes tendo o servidor Moodle como alvo;– Contabilizar as médias e os máximos dos valores obtidos
• Foi alocado 8GB de memória virtual para o Java;
• Tanto o servidor Moodle, quanto o Jmeter foram reiniciados ao fim de cada teste, a fim de liberar recursos;
• Cada teste tem duração entre 30 e 40 minutos;– Tempo de login + interações + logout
Simulação
Simulação
• O tempo de coleta configurado no Zabbix foi de 30 segundos para todos os recursos;
• As informações foram retiradas por meio de consultas à base de dados;
• Desse modo, foi possível traçar um perfil de uso dos recursos, com base nos valores obtidos.
Resultados
• Foram realizados ao todo 13 testes;– Cada um com uma quantidade definida de usuários.
CPU (%) Memória RAM (MB)Tráfego de rede (input/output)
Nº de usuários Média Máx Média Máx Média Máx1 - - - - - -
10 - - - - - -20 - - - - - -30 - - - - - -40 - - - - - -60 - - - - - -80 - - - - - -
100 - - - - - -130 - - - - - -160 - - - - - -200 - - - - - -240 - - - - - -
1000 - - - - - -
Uso de CPU (%)
1 10 20 30 40 60 80 100 130 160 200 240 10000
10
20
30
40
50
60
70
80
90
100
1; Máx (%); 1.3210; Máx (%); 7.72
20; Máx (%); 15.65
30; Máx (%); 24.3840; Máx (%); 29.2
60; Máx (%); 45.44
80; Máx (%); 63.34
100; Máx (%); 77.88
130; Máx (%); 100160; Máx (%); 100200; Máx (%); 100240; Máx (%); 1001000; Máx (%); 100Uso de CPU (%)Média (%) Máx (%)
Usuários
CPU
(%)
Tende a crescer linearmente até o teste com 130 usuários; 6% a 9% de aumento a cada 10 usuários.
Atingindo o pico com 130 usuários; Aumentando o tempo de resposta as requisições.
Uso de CPU (%)
32:01 33:31
35:01 36:31
38:01 39:31
41:01 42:31
44:01 45:31
47:01 48:31
50:01 51:31
53:01 54:31
56:01 57:31
59:01 00:31
02:01 03:31
05:01 06:31
08:01 09:31
11:01 12:31
0
10
20
30
40
50
60
70
80
90
100CPU (%) 1000 usuários CPU (%)
Tempo (mm:ss)
CPU
(%)
340 usuários
Com 340 usuários, o Moodle recusa a maioria das conexões;Abaixando o nível de processamento;
Comprovando a média baixa em relação aos demais testes;
Uso de memória RAM
1 10 20 30 40 60 80 100 130 160 200 240 10000
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
5500
6000
1; Máx; 49510; Máx; 69720; Máx; 844
30; Máx; 105140; Máx; 120260; Máx; 1545
80; Máx; 1967100; Máx; 2399
130; Máx; 2954
160; Máx; 3970
200; Máx; 5104240; Máx; 53151000; Máx; 5301
Uso de memória RAM (MB) Média Máx
Usuários
Mem
ória
RA
M (M
B)
259MB são alocados pelo SO; Segue um padrão de crescimento até 200 usuários.
Em média, são atendidos 40 usuários para cada 1GB de memória; Máximo de 5,3GB.
Tráfego de rede - Entrada
1 10 20 30 40 60 80 100 130 160 200 240 10000
2
4
6
8
10
12
14
16
18
20
22
24
1; Máx; 0.5210; Máx; 2.17
20; Máx; 3.5730; Máx; 5.09
40; Máx; 6.52
60; Máx; 10.45
80; Máx; 14.08
100; Máx; 16.56
130; Máx; 21.36160; Máx; 21.55200; Máx; 20.28240; Máx; 19.78
1000; Máx; 15.86
Tráfego de rede - Entrada (Mb/s) Média Máx
Usuários
Tráf
ego
(Ent
rada
Mb/
s)
Segue um padrão de crescimento até 130 usuários; 1,5Mb para cada 10 usuários logados;
Máximo de 21,55Mb/s; Estabiliza e depois cai, com 130 usuários ou mais.
Tráfego de rede - Saída
1 10 20 30 40 60 80 100 130 160 200 240 10000
123456
789
1011
12
1; Máx; 0.4610; Máx; 1.11
20; Máx; 1.9230; Máx; 2.77
40; Máx; 3.64
60; Máx; 4.98
80; Máx; 6.67
100; Máx; 10.43130; Máx; 9.95
160; Máx; 10.41200; Máx; 10.64240; Máx; 11.01
1000; Máx; 9.46
Tráfego de rede - Saída (Mb/s) Média Máx
Usuários
Tráf
ego
(Saí
da M
b/s)
50% a 60% do tráfego de entrada; Configuração de cache;
Também tende a estabilizar;
• Observa-se que o "gargalo" ocorreu inicialmente, em termos de processamento; antes mesmo de atingir o pico de memória RAM;
• Logo, com esses recursos de hardware, é possível garantir o atendimento de até 130 usuários simultâneos sem a perda significativa de rendimento;
• Mas, para instalações de maior porte, é aconselhável o uso de equipamentos mais robustos (sobretudo, com maior capacidade de processamento);
• Ou mesmo balancear a aplicação em dois ou mais computadores, tornando a solução escalável e aumentando a capacidade dos recursos.
Considerações finais
Trabalhos futuros
• Realizar os mesmos testes; mas, analisar outros quesitos, como escrita em disco, servidor Web e banco de dados;
• Trabalhar com mais atividades e recursos: Banco de dados, Wiki, Glossário, etc;
• Realizar os mesmos testes, com o mesmo script, mas, modificando os parâmetros do servidor Web e analisar os resultados a partir disso;
• Analisar o comportamento do banco de dados quando submetido aos mesmos testes;
• Analisar o comportamento do Moodle com o uso de bases de dados distintas. Ex: MySql, Oracle, Postgres, ou até com outro webserver (Nginx).
Recommended