Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Suite à une importante montée en charge sur notre Moodle de production (consécutive à l'intégration du C2i notamment), nous sommes confrontés à des problèmes de performance (MySQL), aux heures de pointe.
Nous sommes en Moodle 1.8.6 (et on va y rester dans les semaines à venir...) avec un serveur MySQL distinct mais non exclusivement dédié à Moodle.
Je recherche des sites comparables, du point de vue de la charge :
- 1 000 espaces-cours
- 150 catégories de cours
- 40 000 utilisateurs enregistrés (dont 200 enseignants réellement actifs sur la plate-forme)
- 50 000 associations utilisateur/cours (nombre d'occurrences dans MDL-ROLE_ASSIGNMENTS)
- 1 400 utilisateurs différents par jour, d'après le script http://[URLMoodle]/admin/user.php?sort=lastaccess&dir=DESC&perpage=1200&firstinitial=&lastinitial=&search=
- 20 000 "actions" par jour (aux jours de pointe), d'après le script http://[URLMoodle]/course/report/log/index.php
Si vous administrez un Moodle comparable sur certains de ces points, pourriez-vous me communiquer :
- la version de votre Moodle
- la configuration du serveur Moodle (ram, swap, CPU, disque)
- la configuration du serveur MySQL s'il est différent du serveur Moodle ; est-il dédié à Moodle ?
Merci d'avance !
Arnaud
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Joseph
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Une question est : comment pouvez vous mesurer qu'il s'agit d'une charge MySQL et non une charge PHP ? (Ca m'intéresse !!)
Nous prévoyons (et sommes en train de tester) pour le projet Pairformance (Intel/MEN) qui vise 100.000 utilisateurs et 2500 connectés simultanés une mise en cluster sous HAProxy avec trois frontaux Web et un double MySQL clusterisé en NDBCLUSTER.
Nous n'avons aujourd"hui fait que valider le fonctionnement du dispositif et pas encore l'hypothèse de montée en charge.
Si la charge MySQL pure peut être mise hors de cause, une première solution assez économique reste cette clusterisation de frontal. Nous avons placé les volumes contenant le code Moodle sur un volume partagé NFS (pas la meilleure solution, mais c'est pour éviter les synchros de la base de code). La perte de performance par rapport à des copies locales de la racine Moodle ont été mesurées comme perceptibles (essais subjectifs, demande à être approfondi). Avec une répartition sur deux machines, ça tourne correctement d'un point de vue 'architecture'. HAProxy est assez rapide à mettre en oeuvre, et il peut lui même être redondé. Il faut simplement que le système soit "symétrique" ce qui suppose que le Load Balancer soit sur une petite machine dédiée. Nous n'avons pas encore de mesure sur l'impact de la puissance du proxy sur l'ensemble du système.
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Merci de nous tenir au courant de tes expérimentations de "load balancing", c'est intéressant.
Nous-mêmes avons fait il y a quelques mois une tentative de répartition MySQL sur 2 serveurs. Le résultat se montrant catastrophique à l'usage, on est revenu en arrière. Mais... on y retournera !
Chez nous, puisque MySQL et Moodle ne sont pas sur la même machine, il est facile de constater que le serveur Moodle se tourne les pouces alors que le serveur MySQL est saturé peu après qu'on a démarré l'application Moodle...
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
La société MoodleRooms annonce des performances jusqu'à 1 million d'utilisateurs concurrents avec Moodle avec du matériel SUN
Voir http://www.moodlerooms.com/learningcenter/newsroom/news__node/2/
[pub]
As a Moodle Partner, Moodlerooms provides top-of-class service solutions to unlock learning with the open source Moodle LMS. Moodlerooms leveraged a partnership with Sun Microsystems to create a hosting solution that scales to 1 million concurrent users. By doing so, all Moodlerooms installations are run on an optimized Moodle platform that is fully maintained and supported by Moodlerooms professionals. Moodlerooms offers education, additional support and customization services to provide a solution that works for everyone from an individual teacher to a corporation of over 10,000.
[/pub]
Leur architecture de réference a été publiée par SUN ici :
http://sun.systemnews.com/articles/125/5/opt-edu/20119
PS: je n'ai pas d'actions chez eux , c'est grave Docteur ?
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Vos "galères" de répartition m'intéressent... j'ai dû pour ma part modifier pas mal le réglage de dimensionnement des clusters récemment pour ne pas bloquer le système (limite de création d'indexes, de tables, etc). Les performances sont encore en effet un peu "douteuses", mais comme nous sommes sur des VMWares avec très peu de mémoire et des conditions de réseau peu connues, difficile de se faire une idée.
Je vais voir si on peut faire des tests pour confirmer ces différences...
Nous travaillons avec l'équipe de Catalyst actuellement et avons demandé une assistance experte sur la réplication de Postgress. Postgress semble beaucoup plus stable et plus optimisée en général.
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Je suppose que vous avez déjà utilisé des outils de tuning pour régler votre serveur MySQL mais comme je viens de découvrir le script suivant , je passe l'info.
Même pour une petite base on en retire facilement quelques informations intéressantes (Tuning_Primer script).
http://day32.com/MySQL/
Cordialement
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
j'avais effectivement ajouté un lien vers ce script depuis plusieurs mois sur la page de documentation sur les performances
Cordialement
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Toutes mes excuses Séverin , je n'ai pas pris le temps de lire cette page de documentation. C'est en m'intéressant à la mise en place d'un nouveau produit que j'ai découvert par hasard ce script et comme j'avais vu ce fil initié par Arnaud , je me suis empressé de le proposer.
Ah , le réflexe documentation , pas facile à acquérir !!!
Cordialement
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Arnaud,
peux-tu m'en dire plus sur l'intégration C2i chez vous ?
merci.
Chaque étudiant bénéficie de 20h de formation : 6h de CM + 6h de TD + 8h de Tutorat (non présentiel).
Chaque semaine, pour les TD, 4 plages de 2 heures sont réservées et 6 salles sont mobilisées pendant chacune de ces plages. Ce qui fait donc, rien que pour le C2I, environ une centaine d'étudiants connectés simultanément sur Moodle.
Par ailleurs, les étudiants se connectent beaucoup dans le cadre du tutorat.
L'évaluation en fin de formation sera organisée sur Moodle et tiendra lieu d'épreuve pratique du C2I.
L'épreuve théorique du C2I sera organisée sur la plate-forme nationale de certification/positionnement (donc pas sur Moodle).
Une dizaine d'enseignants sont mobilisés par ce dispositif...
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
je me greffe sur cette discussion pour vous demander conseil sur l'optimisation d'un serveur MySQL pour une plate-forme moins ambitieuse :
- 700 utilisateurs
- 180 espaces-cours sur 7 catégories
- 140 000 associations utilisateurs/cours
- 2 500 login par jour en moyenne
- 25 000 "actions" par jour ; 4 000 / heure en période de pointe
Une unique machine héberge Apache 2, PHP 5.1.2 et MySQL 5.026, fonctionnant sous Suse Enterprise Server 10.
Elle comporte 4 Go de RAM, un processeur Intel Xeon 7110N Dual Core Tulsa 2 2,5 Ghz/667MHz, une connexion gigabit et de l'espace disque en quantité (SCSI).
En période de pointe, voici en PJ ce que phpMyAdmin indique comme étant l'état du serveur. Le nombre de requêtes lentes me paraît élevé et, dans les faits, l'utilisateur ressent cette lenteur.
Auriez-vous des idées pour optimiser ce serveur ?
Merci par avance
Thomas
PS : je n'ai pas l'intention de polluer ou de détourner le sujet d'Arnaud. S'il est préférable de séparer ce message dans un fil distinct, je n'y vois aucun inconvénient.
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
Re: Configuration matérielle Moodle et MySQL pour un gros site ? (en 1.8.x)
As-tu tenter d'essayer le petit script proposé plus haut par Christian ? Il semble donné des conseils en fonction des "faiblesses" du serveur.