This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
docpublic:systemes:moodle:moodle_mooc [2014/01/03 13:31] procacci@tem-tsp.eu [mise en ligne via rsync] |
docpublic:systemes:moodle:moodle_mooc [2014/01/22 14:37] (current) procacci@tem-tsp.eu [Awstats] |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Telecom SudParis à mis en place fin 2013 un MOOC intitulé " | + | Telecom SudParis à mis en place en decembre |
Cette page presente les aspects techniques systemes mis en oeuvre afin d' | Cette page presente les aspects techniques systemes mis en oeuvre afin d' | ||
- | Fort de notre experience sur la plateforme Moodle pour les cours en ligne des formations initiales et continus, | + | Fort de notre experience sur la plateforme Moodle pour les cours en ligne des formations initiales et continus, |
Cette article aborde les aspects tehniques : | Cette article aborde les aspects tehniques : | ||
- | * applicatifs (moodle, gestionnaire git), systemes | + | * applicatifs (moodle, gestionnaire git) et backends |
- | * tests de montés en charge (tsung), | + | * des tests de montés en charge (tsung), |
* reporting, statistiques d' | * reporting, statistiques d' | ||
Line 57: | Line 57: | ||
==== Awstats ==== | ==== Awstats ==== | ||
- | le résumé awstats d' | + | le résumé awstats d' |
- | {{: | + | * Décembre 2013 |
+ | {{: | ||
+ | |||
+ | * Janvier 2014 | ||
+ | |||
+ | {{: | ||
===== Moodle Mooc ===== | ===== Moodle Mooc ===== | ||
Line 228: | Line 233: | ||
</ | </ | ||
- | ==== mise en ligne via rsync ==== | + | ==== 1er mise en ligne via rsync ==== |
Nous mettons en ligne (dans une arborescence visible du serveur apache) notre repository d' | Nous mettons en ligne (dans une arborescence visible du serveur apache) notre repository d' | ||
Line 314: | Line 319: | ||
Définition d'un Virtual Host Apache pour heberger cette instance moodle-mooc => création d'un fichier de configuration spécifique dans conf.d d' | Définition d'un Virtual Host Apache pour heberger cette instance moodle-mooc => création d'un fichier de configuration spécifique dans conf.d d' | ||
- | On notera l' | + | On notera l' |
On gere aussi une instance en https avec les certificats qui vont bien. | On gere aussi une instance en https avec les certificats qui vont bien. | ||
Line 443: | Line 448: | ||
< | < | ||
- | [root@flow .tsung]# cat tsung-moocZ-scenario3.xml | + | [root@flowmon |
<?xml version=" | <?xml version=" | ||
< | < | ||
<tsung loglevel=" | <tsung loglevel=" | ||
+ | |||
+ | <!-- Configuration du client --> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <ip value=" | ||
+ | </ | ||
+ | < | ||
<!-- Configuration du client --> | <!-- Configuration du client --> | ||
< | < | ||
- | <client host="flow" use_controller_vm=" | + | <client host="flowmon" use_controller_vm=" |
- | <client host="wik" weight=" | + | <client host="wikis" weight=" |
<ip value=" | <ip value=" | ||
</ | </ | ||
- | <client host="aude" weight=" | + | <client host="auth" weight=" |
<ip value=" | <ip value=" | ||
</ | </ | ||
Line 465: | Line 478: | ||
</ | </ | ||
- | <!-- phases d' | + | <!-- phases d' |
< | < | ||
< | < | ||
<users arrivalrate=" | <users arrivalrate=" | ||
</ | </ | ||
- | < | + | < |
<users arrivalrate=" | <users arrivalrate=" | ||
</ | </ | ||
- | < | + | < |
<users arrivalrate=" | <users arrivalrate=" | ||
</ | </ | ||
Line 486: | Line 499: | ||
< | < | ||
</ | </ | ||
- | <!-- Scénarios 2 avec 30% de probabilité, | + | <!-- Scénarios 2 avec 30% de probabilité, |
<session name=" | <session name=" | ||
- | <for from=" | + | <for from=" |
< | < | ||
</ | </ | ||
Line 494: | Line 507: | ||
</ | </ | ||
</ | </ | ||
+ | |||
</ | </ | ||
+ | ==== Rapport tsung ==== | ||
+ | |||
+ | on peux lancer un rapport sur la campagne de test tsung réalisée en lançant dans le repertoire de log correpondant la commande "/ | ||
+ | |||
+ | < | ||
+ | [root@flow log]# cd 20140103-1439 | ||
+ | [root@flow 20140103-1439]# | ||
+ | creating subdirectory data | ||
+ | creating subdirectory gnuplot_scripts | ||
+ | creating subdirectory images | ||
+ | warn, last interval (7) not equal to the first, use the first one (10) | ||
+ | No data for Bosh | ||
+ | No data for Match | ||
+ | No data for Async | ||
+ | No data for Errors | ||
+ | </ | ||
+ | |||
+ | Cela génere des graphs gnuplot et une page report.html qui resume l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== Tunning openvz ===== | ||
+ | |||
+ | La machine étant sous forme de VM / container openvz, des ajustements ont du etre mis en place pour repondre à la monté en charge | ||
+ | |||
+ | une reference en français sur le sujet: | ||
+ | * http:// | ||
+ | |||
+ | |||
+ | < | ||
+ | # vzctl set 10035 --numproc=800 --save | ||
+ | # vzctl set 10035 --tcpsndbuf=5500000 --save | ||
+ | # vzctl set 10035 --diskinodes 400000: | ||
+ | Running: / | ||
+ | Running: / | ||
+ | CT configuration saved to / | ||
+ | UB limits were set successfully | ||
+ | CT configuration saved to / | ||
+ | |||
+ | |||
+ | # vzlist -o ctid, | ||
+ | CTID HOSTNAME | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [root@mooc ~]# cat / | ||
+ | Version: 2.5 | ||
+ | | ||
+ | 10035: | ||
+ | lockedpages | ||
+ | privvmpages | ||
+ | shmpages | ||
+ | dummy | ||
+ | numproc | ||
+ | physpages | ||
+ | vmguarpages | ||
+ | oomguarpages | ||
+ | numtcpsock | ||
+ | numflock | ||
+ | numpty | ||
+ | numsiginfo | ||
+ | tcpsndbuf | ||
+ | tcprcvbuf | ||
+ | othersockbuf | ||
+ | dgramrcvbuf | ||
+ | numothersock | ||
+ | dcachesize | ||
+ | numfile | ||
+ | dummy | ||
+ | dummy | ||
+ | dummy | ||
+ | numiptent | ||
+ | </ | ||
+ | |||
+ | ===== Process Apache ===== | ||
+ | |||
+ | configuration standard du package apache pour RedHat/ | ||
+ | |||
+ | ==== MPM Prefork vs Worker ==== | ||
+ | |||
+ | A propos de MPM prefork vs worker il y a bien des soucis avec php qui serait parfois "non thread-safe", | ||
+ | from: http:// | ||
+ | |||
+ | "Since with mod_php, PHP gets loaded right into Apache, if Apache is going to handle concurrency using its Worker MPM (that is, using Threads) then PHP must be able to operate within this same multi-threaded environment -- meaning, PHP has to be thread-safe to be able to play ball correctly with Apache! | ||
+ | |||
+ | At this point, you should be thinking "Ok, so if I'm using a multi-threaded web server and I'm going to embed PHP right into it, then I must use the thread-safe version of PHP". And this would be correct thinking. However, as it happens, PHP's thread-safety is highly disputed. It's a use-if-you-really-really-know-what-you-are-doing ground." | ||
+ | |||
+ | liste des extensions apache non thread-safe | ||
+ | * http:// | ||
+ | explications détaillées | ||
+ | * http:// | ||
+ | |||
+ | on a les librairies GD et ldap sur moodle qui sont peut-etre douteuses sur le sujet!? | ||
+ | |||
+ | Parametres prefork positionnés | ||
+ | |||
+ | < | ||
+ | < | ||
+ | StartServers | ||
+ | MinSpareServers | ||
+ | MaxSpareServers | ||
+ | ServerLimit | ||
+ | MaxClients | ||
+ | MaxRequestsPerChild | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [root@mooc ~]# apachectl -V | ||
+ | Server version: Apache/ | ||
+ | Server built: | ||
+ | Server' | ||
+ | Server loaded: | ||
+ | Compiled using: APR 1.3.9, APR-Util 1.3.9 | ||
+ | Architecture: | ||
+ | Server MPM: | ||
+ | threaded: | ||
+ | forked: | ||
+ | Server compiled with.... | ||
+ | -D APACHE_MPM_DIR=" | ||
+ | -D APR_HAS_SENDFILE | ||
+ | -D APR_HAS_MMAP | ||
+ | -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) | ||
+ | -D APR_USE_SYSVSEM_SERIALIZE | ||
+ | -D APR_USE_PTHREAD_SERIALIZE | ||
+ | -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT | ||
+ | -D APR_HAS_OTHER_CHILD | ||
+ | -D AP_HAVE_RELIABLE_PIPED_LOGS | ||
+ | -D DYNAMIC_MODULE_LIMIT=128 | ||
+ | -D HTTPD_ROOT="/ | ||
+ | -D SUEXEC_BIN="/ | ||
+ | -D DEFAULT_PIDLOG=" | ||
+ | -D DEFAULT_SCOREBOARD=" | ||
+ | -D DEFAULT_LOCKFILE=" | ||
+ | -D DEFAULT_ERRORLOG=" | ||
+ | -D AP_TYPES_CONFIG_FILE=" | ||
+ | -D SERVER_CONFIG_FILE=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Process apache par defaut | ||
+ | |||
+ | < | ||
+ | | ||
+ | 22 | ||
+ | </ | ||
+ | |||
+ | stats | ||
+ | |||
+ | < | ||
+ | $ curl -s ' | ||
+ | Total Accesses: 119166 | ||
+ | Total kBytes: 2134616 | ||
+ | CPULoad: 4.27854 | ||
+ | Uptime: 312481 | ||
+ | ReqPerSec: .381354 | ||
+ | BytesPerSec: | ||
+ | BytesPerReq: | ||
+ | BusyWorkers: | ||
+ | IdleWorkers: | ||
+ | Scoreboard: R_R_.__RR_WW_W._._R_....RRR..................................................................................................................................................................................................................................... | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ |