sessões ativas simultaneamente

sessões ativas simultaneamente

por Bruno Galvão -
Número de respostas: 3

Olá Lino,

Boa tarde,

Estou com uma dúvida nas sessões ativas simultaneamente no MySQL do moodle, temos uma pessoal que monitora o nosso banco e seguindo ele está ocorrendo um comportamento anormal com o número muito alto de sessões abertas. Segundo os mesmos a média é três e o threshold foi estabelecido em 10. Nossa média fica até 16 só que normalmente entre às 14h e 14h15 e alguns outros horários as sessões sobem para 24  ou mais como pode ser visto nos gráficos abaixo.Poderia ajudar entender melhor essa questão?

Dia 22/06

Hoje 

 

 

 

Em resposta à Bruno Galvão

Re: sessões ativas simultaneamente

por Lino Vaz Moniz -

Bruno,

Para analisar a carga de acesso sazonal no banco de dados, sugiro efetuar os seguintes procedimentos:

a) Monitorar os picos de acesso fazendo levantamento de quantidade de usuários que estavam navegando no Moodle exatamente no momento do pico do banco de dados.  Isso você pode rastrear no banco executando os seguintes comandos SQL:

Listar usuários online no Moodle (SQL)
https://comunidade.badiu.com.br/mod/forum/discuss.php?d=470&parent=566

Você pode realizar essa mesma consulta no plugin MReport pelos seguintes relatórios:

  • Acesso recente - Relatório que lista usuários que estão online nos últimos 20 minutos. Há possibilidade de parametrizar a data. Tirando a data dinâmica, colocando a data estática filtrando por dia, hora e minuto. Esse relatório fica em Usuário/Acesso recente
  • Acesso único por usuário é um outro relatório que dá resultado similar. Neste caso precisa mudar filtro de data dinâmica para estática. Além, disso tirar filtro ação que vem configurado por padrão para mapear login. Veja um tutorial desse relatório no link https://comunidade.badiu.com.br/mod/forum/discuss.php?d=555

Os duas opções de relatório do MReport empregam o mesmo comando SQL abordado no primeiro link. Se a quantidade de usuários online no momento do pico  não justifica, neste caso, é necessário monitorar o cron que é um grande vilão no consumo de processo. No item b) abordo isso. 

b) O cron do Moodle muitas vezes eleva o consumo de banco de dados e processamento mesmo não tendo alunos navegando no Moodle. Neste caso é necessário analisar se o período de pico corresponde com o intervalo de processamento do cron.  Se sim, entre no gerenciado de tarefas agendadas, mude horário de processamento das tarefas ou desativa as tarefas que não são usadas. Uma outra alternativa é colocar tempo de execução do cron menor, algo como 5 minutos. Assim a carga fica melhor distribuída. Também é necessário analisar o log gerado pelo cron via relatório de acesso. Basta fazer filtro na opção origem, selecionar valor CLI. Essa opção tem no relatório padrão do Moodle e também no MReport. 

Observação

Para mapear diretamente no banco pelo log, quantidade de registros processados simultaneamente, execute o comando SQL  a seguir:

Rastrear sobrecarga do Moodle pelo log banco de dados com comando SQL
https://comunidade.badiu.com.br/mod/forum/discuss.php?d=315

Em resposta à Lino Vaz Moniz

Re: sessões ativas simultaneamente

por Bruno Galvão -

Meu caro Lino, muito grato, 

Em primeira análise, verificamos que das 41881145 queries totais, no arquivo com dados coletados, 35987419 são Queries do tipo " SELECT *, do mesmo tipo, apenas com parâmetros distintos, uu seja, um total de 86% do volume coletado são queries do tipo " SELECT * ".

 

   9344342 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '53823' AND
> userid = '3214'
>                 9344481 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '56686' AND
> userid = '3338'
>                 9344154 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '67619' AND
> userid = '3326'
>                 9344101 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '56707' AND
> userid = '3245'
>                 9344246 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '62524' AND
> userid = '7079'
>                 9344420 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '25694' AND
> userid = '3231'
>                 9344416 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '29225' AND
> userid = '3231'
>                 9344481 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '58967' AND
> userid = '3338'
>                 9344342 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '52021' AND
> userid = '3214'
>                 9344154 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '67620' AND
> userid = '3326'
>                 9344101 Query   SELECT * FROM
> mdl_course_modules_completion WHERE coursemoduleid = '53823' AND
> userid = '3245'

Sei que essa tabela registra mdl_course_modules_completion registra atividades completadas por um determinado usuário. Sabe como podemos evitá-la ou otimizá-la(Ex: rescrever, alterar
o horário de execução, etc) ?