Affichage d'un cours très long

Affichage d'un cours très long

par Olivier Valentin,
Nombre de réponses : 9
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Bonjour à tous,

à bout d'idées, je poste ce message afin d'avoir quelques pistes à mon mystère...

Je tourne sur Moodle 3.11.3+, avec une infra composé d'un load balancer et 8 nodes de serveur. Cette infra a été mise en place durant le confinement pour supporter aisément un nombre de connexions très important. Ceci pour préciser donc que côté infra, il ne devrait pas  y avoir de soucis... sourire
Côté template, nous utilisons Adaptable. Je sais qu'il a des soucis de mises à jour, mais ce ne devrait pas être lui le responsable non plus...

Le problème :
Un enseignant possède un cours sur cette instance qui a énormément de difficultés à s'afficher pour un rôle Enseignant : presque 2 minutes (quand ça se passe bien) !!
Pour un rôle Etudiant, tout se passe bien : pour eux, c'est transparent et rapide. Mais pour un enseignant, c'est horrible. Et c'est pire encore si on active le mode Edition : plantage régulier, et seule la première section apparait, on a même pas le menu édition !

Le contenu de ce cours ne semble pourtant pas poser de soucis, en voici une rapide description :

  • environ 10 pages libres avec un lien vers une vidéo. La vidéo n'est pas incluse dans la page, elle est sur la WebTV de notre université.
  • environ 10 fichiers PDF, dont le poids ne dépasse que rarement 1 Mo.
  • 4 QCM. Aucune autre activité, pas de H5P ou autre.
  • environ une trentaine d'étiquettes, avec du texte et/ou des images (images légères).
  • il y a 3 sections, paramétrées avec 4 restrictions.
  • chaque section contient environ une dizaine de ressources et activités, chacune ayant une restriction (en gros, on ne peut accéder à l'élément suivant qu'en ayant achevé le précédent).
  • le cours est affiché avec le format Collapsed Topics (un plugin tiers permettant d'afficher les sections sous forme de menus à afficher/cacher).
Il y a actuellement 1800 étudiants inscrits dans ce cours. Ils sont invités par une méthode d'inscription légèrement dérivée de la synchronisation de cohortes. Ces cohortes ont été invitées depuis la semaine dernière. Le cours a été ouvert le lundi... et les ennuis d'affichage ont commencé dès le mardi.

Nous avons des cours qui invitent des cohortes aussi importantes, mais eux n'ont aucun problème !
Nous avons des cours qui contiennent des activités bien plus lourds, mais ils s'affichent sans souci (par exemple, un cours avec une trentaine d'activités H5P portant des restrictions bien plus complexes).

A côté de cela, quand le cours accepte de s'afficher avec le menu des paramètres du cours, je navigue et accède à tous les autres outils : rapports, carnet de notes etc.

La seule chose que je n'aurais pas testé, c'est de changer de template (le cours est en prod). Mais sur le coup, je ne pense pas que ce soit lui qui soit le problème !

Après ce long exposé, tout ce que j'espère, c'est que vous auriez éventuellement des pistes à explorer auxquelles je n'aurais pas pensé, ou que cela vous fasse penser à quelque chose... Je n'arrive pas à mettre le doigt sur un élément de ce cours qui permettrait d'avoir une piste : nous avons d'autres cours où l'un ou l'autre de ces éléments (nombre d'inscrits, de restrictions, activités...) est bien plus important, mais celui-ci est le seul où ça se passe mal !!!

Merci d'avoir lu ce rude exposé jusqu'au bout... sourire

Olivier
Moyenne des évaluations  -
En réponse à Olivier Valentin

Re: Affichage d'un cours très long

par Jérôme DEMIAUX,
Avatar Traducteurs

Bonjour,

Pas de solution mais quelques pistes.

Si tu ne peux changer le template du cours, tu dois pouvoir faire une sauvegarde restauration puis tester les modifs sur le cours "dupliqué".
Cela permettra également de valider la non implication des inscrits et des méthodes d'inscription.

Après, je ferais de la coupe sombre en supprimant sur la copie les activités une à une pour vérifier si l'une d'entre elles n'est pas "foireuse", notamment dans les intitulés, descriptions ... qui peuvent toujours contenir des insertions d'autres logiciels (copier coller depuis word par exemple, typique d'un affichage restreint).

Et quand il ne reste plus rien, on cherchera d'autres possibilités 😁
Des filtres actifs ?

Jérôme.

Moyenne des évaluations Utile (2)
En réponse à Jérôme DEMIAUX

Re: Affichage d'un cours très long

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Jérôme,
merci pour tes pistes !

On va quand même tenter celle du changement de template, il faudrait juste qu'on arrive à dégager un moment pour la "couper" et faire nos tests. Je ne tiens pas à l'écarter, même si sur le coup, je ne le vois pas fautif dans la mesure où le cours fonctionnait avant !

Je n'avais pas précisé cet élément, il m'était sorti de la tête : le cours est en effet une dupli ! L'an dernier, ce même cours ramait pour le mode édition, avec exactement les mêmes symptômes. Forts de notre arrivée sur Moodle 3.11, j'ai utilisé la fonction de copie de cours pour repartir sur une nouvelle base.
Sur le coup, tout fonctionnait, sans problèmes.
La semaine dernière, le collègue chargé de ce cours importe les cohortes. Pas de problèmes.
Depuis ce mardi, c'est fichu : le cours rame dès le moment où on a un rôle a minima Enseignant, avec incapacité à passer en mode édition.

Je vais aller vérifier les activités. On est effectivement pas à l'abri d'un copier/coller foireux, je n'y avais pas pensé.

Côté filtres, je vais tenter de ce côté par acquis de conscience. Il y a plusieurs filtres actifs dans le cours, mais ils ne sont pas sollicités. On retrouve les habituels MathJax, Tex, lien des glossaires (pas de glossaire dans ce cours), et quelques filtres tiers (IPA, Syntax Highlighter, H5P...). Je tenterai tout de même de les désactiver.

Merci déjà pour ces premières pistes !

Olivier
En réponse à Olivier Valentin

Re: Affichage d'un cours très long

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs
Salut Oliv',

En complément de la réponse de Jérôme, as-tu vérifié dans la console javascript si tout était ok au chargement de la page ?

Il y a également l'onglet "Réseau" qui peut permettre de voir si une ressource ou un fichier en particulier bloque le chargement :



Seb
Moyenne des évaluations Utile (2)
En réponse à Sébastien Mehr

Re: Affichage d'un cours très long

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Hello Seb !

RAS de ce coté. Dans l'onglet Console, tout est ok, tous les éléments sont en 200.

Sur l'onglet Réseau, Rien à signaler non plus, mis à part le temps d'affichage du premier élément ! sourire
Quand j'ai lancé l'affichage de la page, le premier élément a mis plus d'une minute pour s'afficher. Deux images, par contre, ont mis un petit moment à apparaitre... A creuser de ce coté. Elles semblaient d'un poids raisonnable, il y a peut-être un souci là-dessus ? Mais ça serait étonnant que ce soit lié aux images si le cours s'affiche à toute vitesse quand on est étudiant et rame quand on est enseignant, non ?



J'en profite d'ailleurs pour préciser que tester sur un autre navigateur ne résout rien. J'ai vérifié avec Chrome et Firefox, sur smartphone et PC, aucune différence.

Olivier
En réponse à Olivier Valentin

Re: Affichage d'un cours très long

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs
Effectivement le chargement est "un peu" long sourire

Si les images ne sont pas cachées aux étudiants, je ne pense pas non plus qu'elles soient coupables.

As-tu la possibilité d'importer le cours sur une plateforme de test pour tester le comportement du cours sur une autre instance ?

Dans le cas où toutes les propositions faites n'aboutissent pas et si jamais tu t'entends bien avec ton DBA, tu peux lui demander d'activer temporairement l'option "slow query log" de la base de données. Cette option permet de journaliser dans un fichier toutes les requêtes ayant un temps d'exécution supérieur au temps paramétré (par exemple 10 secondes).

L'idée étant d'activer l'option, de recharger le cours avec un rôle enseignant tout en surveillant les entrées dans le fichier. Cette option peut par contre générer beaucoup d'entrées dans le fichier si le temps paramétré est court. Idéalement à activer sur un environnement de test ou éventuellement en prod mais pendant une période creuse.

Tiens nous au jus !

Seb
Moyenne des évaluations Utile (1)
En réponse à Sébastien Mehr

Re: Affichage d'un cours très long

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Entre Sébastien et Séverin, j'ai deux belles pistes à explorer... Je vois tout cela au plus vite et je viendrai faire des retours si ça avance !
Merci beaucoup pour votre aide !
Olivier
En réponse à Olivier Valentin

Re: Affichage d'un cours très long

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour à tous,
essais du matin terminés.

J'ai recontacté mon collègue après avoir dupliqué le cours. La copie fonctionne parfaitement, mais il m'a fait remarqué que nous avions déjà fait ça ! Le cours avait des difficultés d'affichage en admin, si bien qu'à la rentrée, nous avions dupliqué le cours en pensant que quelque chose n'allait pas. Cette copie fonctionnait parfaitement jusqu'au moment où les étudiants ont commencé à travailler. Exactement comme l'an dernier donc ! La nouvelle copie de travail que j'ai faite fonctionne donc normalement, mais si ça se trouve, dès le moment où elle sera utilisée par les cohortes, ça risque de faire pareil...

Grâce à Séverin, j'ai découvert le thème de session, merci encore ! sourire
Résultat : le cours a toujours du mal à s'afficher. Par contre, lorsque j'active le mode édition, l'affichage est immédiat et fonctionne parfaitement ! Un très bon point pour mon collègue, car il ne pouvait même plus modifier avant. Je ne sais pas quelle conclusion en tirer...

Côté infra, je vais demander à mes collègues s'il est possible d'activer ce slow query, mais il faudrait que je trouve un créneau !

Olivier
En réponse à Olivier Valentin

Re: Affichage d'un cours très long

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Re,
après avoir pu activer le fameux "slow query log" par les adminsys de notre plateforme, il semble que quelque chose ne va effectivement pas... même si cela reste flou.

Le retour qui m'a été effectué indique bien qu'il y a un énorme paquet de requêtes qui s'effectuent pour ce cours. Et elles ont toutes la même cible : la table des achèvements (mdl_course_modules_completion).

J'ai encore du mal à y voir clair, c'est pour ça que je pose toutes ces réflexions ici pour savoir si vous confirmez/infirmez mes conclusions.

Il y a une trentaine de ressources avec achèvements. Multiplié par 1800 inscrits. Ce qui équivaut en gros à plus de 50 000 requêtes, ce qui explique pourquoi le cours rame autant à l'affichage. A ce moment, une question me vient : quand un étudiant se connecte, Moodle, j'imagine, ne fait remonter que SON achèvement. Pourquoi, lorsqu'il s'agit d'un rôle à minima Enseignant, le système fait cette requête des suivis d'achèvement pour TOUS les étudiants ?

Ensuite, je re-précise à nouveau que je suis sur Adaptable et sur Moodle 3.11.3+, qui a intégré un nouveau système d'affichage des achèvements sous forme d'étiquette. Or, Adaptable n'est pas encore tout à fait à jour et n'intègre pas cet affichage. Y a-t-il un lien ? Cela peut jouer, et en même temps, le temps d'affichage est tout aussi long si je passe sur Boost.

Enfin, y aurait-il quelque chose de différent lorsqu'on est en mode édition ? Que soit Boost ou Adaptable, lorsque je passe en mode édition, l'affichage est toujours sensiblement meilleur (surtout avec Boost).

J'ai même réussi à mettre la main sur des version antérieurs, avec notre ancien Moodle 3.9 : à nombre égal d'inscrit, et même avec plus d'achèvements et de restrictions, le cours s'affichait pour tout le monde sans aucun souci !

Il semble donc bien qu'il y ait quelque chose avec Moodle 3.11 qui n'était pas présent sur la 3.9, et cela semble se diriger vers les achèvements... mais ça reste à prouver ! sourire

Olivier
En réponse à Olivier Valentin

Re: Affichage d'un cours très long

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour Olivier,

Pour tester avec un autre thème qu'Adaptable, tu peux utiliser le principe des thèmes de session, qui te permet de spécifier le thème à utiliser pour toi seul, sans rien modifier pour personne d'autre. sourire

Après l'avoir activé, soit dans le fichier de configuration (config.php paramètre allowthemechangeonurl), soit dans les paramètres (depuis "Administration du site > Présentation > Thèmes > Réglages thème", paramètre "Autoriser le changement du thème dans l'URL"), tu pourras tester simplement avec Boost (ou Classic), via une URL de type https://mon.moodle.fr/dossier/fichier.php?theme=boost

Il serait également intéressant de tester avec un autre format de cours...

Séverin
Moyenne des évaluations Utile (2)