Uma estratégia de analise da performance do Moodle consiste em monitorar o tempo preciso que o cron do Moodle leva para ser executado e também quantas vezes está sendo executado.
Uma forma rápida de monitorar isso, é hacker o código do Moodle inserindo registro de log sobre o momento que cron é chamado e o momento que o cron é encerrado. Para efetuar isso, siga os seguintes passos:
1) Abra o arquivo cronlib.php
Localize e abra o seguinte arquivo
MOODLE_INSTALL_DIR/lib/cronlib.php
2) Edite a função cron_run()
Localize a função function cron_run() essa função fica aproximadamente na linha 35 a 519
function cron_run() { global $DB, $CFG, $OUTPUT; ....... }
Adicione no inicio da função depois do código global $DB, $CFG, $OUTPUT; ,o seguinte código:
$cromid=time();Esse código registra log assim que a função for chamada
$cron_id="cron_id_".$cromid;
add_to_log(1, 'monitorcron', 'cron_start', $cron_id, '');
No final da função que fica aproximadamente na linha 519, antes de fechar a função adicione esse código:
$diffcron=time()-$cromid;
add_to_log(1, 'monitorcron', 'cron_end', $cron_id, $diffcron);
Esse trecho registra o encerramento do cron, usando a mesma chave do registro de log que iniciou o cron.
Veja a função com com os códigos inseridos:
function cron_run() { global $DB, $CFG, $OUTPUT; //código adicionado. registrar log de inicio $cromid=time(); $cron_id="cron_id_".$cromid; add_to_log(1, 'monitorcron', 'cron_start', $cron_id, ''); //código da lógica da função ....... //código adicionado. Registra log do fim da execução $diffcron=time()-$cromid; add_to_log(1, 'monitorcron', 'cron_end', $cron_id, $diffcron); }
Salve as alterações feitas no arquivo
3) Consultor log com SQL
Para rastrear o log do cron, execute o seguinte comando SQL:
SELECT id, time,action, url AS cronid, info AS duration FROM mdl_log WHERE module='monitorcron'
Esse hacker pode não funcionar na verão 2.9 do Moodle uma vez que a função add_to_log foi descontinuado.