Rastrear sobrecarga do Moodle pelo log banco de dados com comando SQL

Rastrear sobrecarga do Moodle pelo log banco de dados com comando SQL

por Lino Vaz Moniz -
Número de respostas: 0

Há algumas rotinas do script do Moodle que geram muitas conexões ao banco de dados. Isso geralmente causa lentidão do site.  Uma forma de rastrear essas rotinas é analisar o log de acesso de cada usuário. Verificar se há vários registros de log com a mesma data, ou seja, gerado no mesmo segundo.

            Geralmente o acesso às mensagens internas do Moodle geram uma carga enorme de log na mesma unidade de tempo (no mesmo segundo). Isso geralmente causa gargalo quando há muita mensagem interna na caixa dos usuários.

A seguir, será apresentando alguns comandos SQL que ajuda monitorar quantidade de acesso simultâneos no banco de dados para cada usuário em si.  Uma forma de rastrear isso é consultar no banco os usuários que tiveram acima de 10 conexões simultâneo no banco em um determinado período.

 

Mapear a lista de usuários com mais de 10 conexões simultâneo no banco

SELECT timecreated,userid, count(id) AS countrecord FROM mdl_logstore_standard_log WHERE timecreated >= ? AND timecreated <= ? GROUP BY timecreated,userid HAVING count(id) >10 ORDER BY count(id) DESC

 

Mapear a lista de usuários com mais de 10 conexões simultâneo no banco sobre leitura de mensagens interna

SELECT timecreated,userid, count(id) AS countrecord FROM mdl_logstore_standard_log WHERE component='core' AND target='message' AND eventname like '%message_viewed'  AND timecreated >= ? AND timecreated <= ? GROUP BY timecreated,userid HAVING count(id) >10 ORDER BY count(id) DESC

 

Para ambos os comando, passe o parâmetro data em timecreated >= ? AND timecreated <= ?  pode ser de intervalo de horas ou de um dia.  Gere a data em timestamp. Gere nesse link: http://www.onlineconversion.com/unix_time.htm

Caso sua base for grande, evite passar parâmetro de períodos longos. Passe intervalos pequenos de data. Pode ser intervalos de horas do mesmo dia.

 Essas consultas retornam 3 três colunas.  A primeira coluna é do tempo. A segunda é o usuário. A última e o total de conexões feita no banco naquela data, ou seja, naquela unidade de segundos.

Quanto maior for a valor da última coluna, maior é a sobrecarga do banco, o que ocasiona lentidão do site. 

Os comandos acima funcionam a partir da versão 2.7 do Moodle.