Bom dia,
Tenho o moodle instalado em um servidor dedicado. Liberei a prova para os alunos, só que quando chegou com 200 alunos realizando a avaliação o sistema caiu. Existe algum meio de melhorar a performance do moodle?
Bom dia,
Tenho o moodle instalado em um servidor dedicado. Liberei a prova para os alunos, só que quando chegou com 200 alunos realizando a avaliação o sistema caiu. Existe algum meio de melhorar a performance do moodle?
Opa Victor, tudo blz
Há vários fatores que impactam no desempenho do servidor. Os mais importantes no que tange a quantidade de usuários acessando são:
via de regras essas variáveis que devem ser observados quando há gargalo. No sistema Linux há alguns soft de monitoramento como:
Esse ao rodar esses soft terá como ter uma visão qual dos recursos memória e processador está sendo mais consumido. Por outro lado, para examinar a causa do gargalo, é necessário analisar o log de erro do apache e mysql. Esses log, apontam falha e motivos que ocorreu. Isso auxilia na análise de solução.
Uma alternativa bem em conta é usar servidores cloud da Digitalocean, Lonode e Amazon. Esses datacenters oferecem possibilidade de gerenciar servidores com escalonamento horizontal, ou seja, criar balanceamento de carga. Isso significa que a medida que aumentar quantidade de usuários simultâneos, novos servidores serão alocados automaticamente. O balanceamento de carga é recomendo para sistemas grandes, sistema de pequeno ou médio porte podem ser solucionados com uma única máquina ou duas máquinas. Uma para aplicação e outra para banco de dados.
Em resumo, Victor, detalhe mais a capacidade da máquina e configuração que ta usando. Assim, podemos lhe auxiliar de forma mais precisa.
Boa tarde,
Segue as configurações do servidor:
Memoria: 15GB
Disco: 1TB
CPU: Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz de 8 núcleos
Boa noite,
Existe algum meio de melhorar a perfomance do mysql atraves do arquivo my.conf? Essa mudança melhora a performance do moodle?
Victor,
A configuração que você descreve da máquina é boa. Por essa capacidade de hardware dá para suportar mais de 200 usuários. O problema pode estar na configuração. Sugiro efetuar os seguintes checklist:
1) Qual é o valor que está alocado na variável max_connections do MySQL. Por padrão, vem 100. Este valor deve ser alterado para quantidade maior de usuário. Se após a instalação do MySQL não foi feito nenhum ajustes, é necessário fazer alterando alguns parâmetros tais como: key_buffer, query_cache_size, query_cache_limit, innodb_buffer_pool_size, innodb_log_buffer_size entre outros.
2) Na configuração do PHP verifique a configuração dos seguintes parâmetros: memory_limit, post_max_size, max_execution_time e outros.
Bom dia,
Lino, qual valores posso colocar? Tem algum modelo de valores que posso colocar que acha ideal para o meu servidor?
Victor,
Vou compartilhar aqui uma configuração de servidor.
Cenário
Servidor usado para rodar Moodle e sistema GMoodle, o antigo sistema de relatório, atualmente substituído pelo MRport.
Capacidade
32 GB RAM
500 GB SSD
8 CPU
Configuração PHP
date.timezone = America/Sao_Paulo upload_max_filesize=1200M post_max_size=1200M max_execution_time=30 memory_limit=300M
Configuração do MySQL
innodb_buffer_pool_size = 4G innodb_buffer_pool_instances = 6 innodb_additional_mem_pool_size = 512M innodb_log_buffer_size = 256M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 innodb_file_per_table = 1 innodb_flush_method=O_DIRECT key_buffer= 4G max_allowed_packet= 500M max_connections= 300 query_cache_size= 160M query_cache_limit= 10M
Essa configuração pode não valer para o seu caso. Foi uma configuração ajustada em contexto específico de um servidor que rodava outros serviços além do Moodle.
Já experimentou um serviço de internet melhor? Já aconteceu comigo que às vezes falha a conexão devido ao serviço de internet. No meu caso usaram a TIM que tem pacotes bons, você tem que avaliar o que melhor conecta na sua área e se tiver interesse em contratar o da operadora de telefonia.
Uma alternativa para aumentar performance do servidor e revisar configuração do mysql, php e apache.
No post sobre performance do servidor há documento de autoria de Paulo Angelo que apresenta várias soluções de configuração.
Já tive relato se situação parecida que a partir de 200 usuário dava gargalo. A máquina tinha boa configuração. Neste caso, ancorando no documento de consultoria foi feito ajuste no apache. Alteando para:
<IfModule mpm_prefork_module>
StartServers 20
MinSpareServers 20
MaxSpareServers 100
MaxRequestWorkers 600
MaxConnectionsPerChild 30
</IfModule>
Essa configuração é contextualizado e recomendado no neste relatório de consultoria