Module ciiexamen et surcharge Mysql

Module ciiexamen et surcharge Mysql

par Baptiste Judic,
Nombre de réponses : 7

Bonjour,

Nous utilisons le module ciiexamen sur notre moodle 1.9.19. Dans sa dernière révision (609) le module semble parfaitement fonctionner avec la plateforme de certification et de positionnement pour le C2i (v. 1.5 985), mais le serveur hébergeant la plateforme de certification rencontre des problèmes chaque nuit lorsque le module est activé sur Moodle : le processus Mysql est anormalement sollicité entre 3 et 4h.

Avez-vous déjà constaté cette surcharge ?

Merci et à bientôt !

Moyenne des évaluations  -
En réponse à Baptiste Judic

Re: Module ciiexamen et surcharge Mysql

par Patrick Pollet,

Bonjour,

    Ce module utilise effectivement le cron de Moodle pour interroger régulierement la plate-forme pour toutes les instances créées sous Moodle ( liste des inscrits, scores obtenus...). Si il y a beaucoup d'instances dans Moodle et beaucoup d'utilisateurs concernés, cela peut effectivement secouer un peu le serveur MySQL, mais pas plus que lors de l'utilisation normale de la plate-forme lorsque l'on consulte les résultats synthétiques d'un examen. 

   Ce qui me surprend aussi est pourquoi seulement entre 3 et 4h du matin ? Votre cron Moodle ne tourne pas plus souvent ? ca me parait bien peu ; voir http://docs.moodle.org/19/fr/Cron 

   Essayer de capter les nombreux messages du cron Moodle dans un fichier en modifiant la commande utilisée dans le /etc/crontab en 

10,40 * * * * root nice wget -q -O - http://votremoodle/admin/cron.php >>/var/log/moodle_cron.log

     Ainsi dans le fichier /var/log/moodle_cron.log vous verrez une trace des executions SUCCESSIVES, ici toutes les heures à 10 et 40 minutes avec les heures de début et de fin du traitement et la durée comme suit :

     Notez l'utilisation de la commande 'nice' pour demander au cron d'être 'civilisé' ...  

Server Time: Mon, 08 Oct 2012 19:10:06 +0200

Starting activity modules
Processing module function assignment_cron ...done.
Processing module function chat_cron ...done.
Processing module function forum_cron ...Starting digest processing...
Cleaned old digest records
done.
Processing module function journal_cron ...done.
Processing module function scorm_cron ...done.
Processing module function workshop_cron ...done.
<---------------------------------------------------------------------------------------------------------------------DEBUT C2IEXAMEN Processing module function ciiexamen_cron ...traitement des ciiexamens traitement de examen 65.428 7 concernés par cette instance de ciiexamen 8 inscrits à cet examen 0 a inscrire sur la PF synchro des notes de 65.428 6 notes à synchroniser traitement de examen 65.429 17 concernés par cette instance de ciiexamen 161 inscrits à cet examen 0 a inscrire sur la PF synchro des notes de 65.429 47 notes à synchroniser traitement de examen 65.429 pas de synchro des inscriptions pour 65.429 synchro des notes de 65.429 47 notes à synchroniser traitement de examen 65.429 16 concernés par cette instance de ciiexamen 161 inscrits à cet examen 0 a inscrire sur la PF synchro des notes de 65.429 47 notes à synchroniser done.
<------------------------------------------------------------------- FIN c2iEXAMEN Finished activity modules Starting blocks
COUPE CAR SANS INTERET
début synchro PWD c2i fin synchro PWD c2i done. Cron script completed correctly Execution took 23.911653 seconds

avec peut-être des messages d'erreur si le module a eu du mal à contacter votre plateforme C2i

A+

En réponse à Patrick Pollet

Re: Module ciiexamen et surcharge Mysql

par Baptiste Judic,

Bonjour et merci pour votre réponse !


Effectivement nous avons pensé au cron Moodle. Sur notre machine il n'est bien sûr pas lancé qu'entre 3 et 4h, mais toutes les 5 minutes. Nous ne comprennons pas, à l'heure actuelle, pourquoi son execution est si différente entre 3 et 4h par rapport aux autres heures de la journées...

Je vais essayer d'obtenir les messages du cron. Je posterai ici-même les résultats.


Merci encore et à plus tard !

En réponse à Baptiste Judic

Re: Module ciiexamen et surcharge Mysql

par Jérôme DEMIAUX,
Avatar Traducteurs

Bonjour,

Une sauvegarde journalière ne serait-elle pas lancée à cette heure généralement creuse de la nuit ? (administration du site -> cours -> sauvegardes -> sauvegarde automatique )

Jérôme.

En réponse à Jérôme DEMIAUX

Re: Module ciiexamen et surcharge Mysql

par Baptiste Judic,

Bonjour,


Non, la sauvegarde automatique n'est pas activée. De plus ce n'est pas le serveur de Moodle, mais celui hébergeant la plateforme de certification c2i qui est touchée par la surcharge mysql.

En réponse à Patrick Pollet

Re: Module ciiexamen et surcharge Mysql

par Baptiste Judic,

Il semblerait finalement que le problème de surcharge Mysql sur le serveur de la PF C2I ne soit pas le fait du module ciiexamen, mais plutôt à la génération des statistiques Moodle lancée par le cron à minuit.

Le temps de traitement de ces stats est incroyablement long (vraiment... 4h), et les requêtes doivent s'empiler dont celles du module ciiexamen rendant le dialogue entre la machine Moodle et la machine hébergeant la PF C2i incohérent...

En réponse à Baptiste Judic

Re: Module ciiexamen et surcharge Mysql

par Baptiste Judic,

Bonjour,

Nous avons corrigé le problème de l'empilement des crons lors du traitement des statistiques en mettant en place un système de « lock » qui autorise l'exécution du cron que si le précédent est bien terminé. Le cron va créer un fichier temporaire au début de sont traitement et le supprimer à la fin. Aucun cron ne sera lancé tant que le fichier existera.

Je relance tout de même le sujet puisque nous avons rencontré un autre problème avec le cron du module ciiexamen. Sur notre Moodle, il y a 95 instances de l'activé ciiexamen, mais seulement 2 sont visibles. Malgré cela, toutes les instances sont traitées par le cron... Et cela génère des erreurs, notamment en raison d'examens c2i qui ne sont plus ouverts sur la plateforme... Le temps de traitement du cron était particulièrement long : plus de 300 secondes (notre cron est exécuté toutes les 5 minutes). On a constaté que c'était dû en partie au cron du module ciiexamen. Nous avons donc légèrement modifié la fonction ciiexamen_cron pour qu'elle traite seulement les instances visibles du module et le temps d'exécution du cron est passé à 30s.

Dans notre cas, traiter que les instances visibles semble être une bonne chose. Peut être qu'il y a un raison pour laquelle le cron traite toutes les activités qu'elles soient visible ou non. Si oui, laquelle ?

Il semble que sur les dernières version du module (pour Moodle 2.3), le fonctionnement soit le même ? Est ce qu'il est possible d'envisager un aménagement de ce cron pour qu'il ne prendre en charge que les instances visibles ?

Merci et à bientôt !

En réponse à Baptiste Judic

Re: Module ciiexamen et surcharge Mysql

par Patrick Pollet,

>en mettant en place un système de « lock » qui autorise l'exécution du cron que si le précédent est bien terminé.

Oui il s'agit d'une demande très ancienne sur le tracker de bogue qui n'a toujours pas été considérée http://tracker.moodle.org/browse/MDL-17783 http://tracker.moodle.org/browse/MDL-16257 et dont la réponse a été (un peu trop comme d'habitude avec Moodle 2.x) une usine à gaz http://tracker.moodle.org/browse/MDL-25499 qui va nécessiter de nombreux mois de mises en oeuvre ...

>Sur notre Moodle, il y a 95 instances de l'activé ciiexamen, mais seulement 2 sont visibles. Malgré cela, toutes les instances sont traitées par le cron... Et cela génère des erreurs, notamment en raison d'examens c2i qui ne sont plus ouverts sur la plateforme...

mais alors si ces examens ne sont plus sur la plate-forme, pourquoi les garder dans Moodle ? 

>Dans notre cas, traiter que les instances visibles semble être une bonne chose. Peut être qu'il y a un raison pour laquelle le cron traite toutes les activités qu'elles soient visible ou non. Si oui, laquelle ?

le cron ne peut pas traiter seulement les instances visibles de l'activité c2iexamen en situation normale. En effet si un enseignant 'demasque' cette instance juste au début de son cours, alors aucun étudiant du cours ne sera inscrit sur la plate-forme C2I tant le cron n'a pas encore tourné.  

de plus la synchro du carnet de notes doit se faire, que l'instance soit visible ou pas .

Il me semble que faire tourner le cron toutes les 5 minutes est excessif. 

Une solution possible serait d'éditer le fichier mod/ciiexamen/version.php comme suit :

$module->cron = 60; // Period for cron to check this module (secs)

en mettant par exemple  1200 ce qui voudra dire que dans votre environnement (toutes les 5 minutes soit 300 sec) la fonction  cron de c2iexamen ne sera lancée qu'une fois sur 4 par le cron de Moodle ... ne pas oublier d'ajouter 1 a 

$module->version = 2011092800;

et de revisiter adminstration/Notifications pour prise en compte ... 

 

A+