Bonjour,
Attention à ne pas mélanger les problèmes ! Le problème de "mémoire" initial n'a rien à voir avec celui de Gilles Le Page. Merci à ce dernier de créer un autre sujet (ou à un modérateur de découper celui-ci).
Pour revenir sur le problème initial :
Fatal error: Out of memory (allocated 120061952) (tried to allocate 1847824 bytes) in /home2/epellier/public_html/lib/dml/mysqli_native_moodle_database.php on line 749
Fatal error: Out of memory (allocated 119275520) (tried to allocate 3767721 bytes) in /home2/epellier/public_html/lib/dml/mysqli_native_moodle_database.php on line 748
Plusieurs choses me surprennent :
- le message d'erreur indique des chiffres loin des 512 Mo (allocated 119275520 = 120 Mo , tried to allocate 1847824= 1.8 Mo), êtes-vous sur que les limites fixées sont bien celles prises en compte par le serveur ?
- j'ai eu ce message lors d'essai de téléchargement des
logs d'un cours en format excel
Fatal error: Allowed memory size of 201 326 592 bytes (= 192 Mo) exhausted (tried to allocate 8208 bytes) in www/lib/dml/mysqli_native_moodle_database.php on line 798
Memory limit est à 192 Mo. En passant à 256 Mo, il me dit la même chose à 256 Mo, donc il atteint bien la limite. Je suis monté à 5 Go et là ca passe ! Il n'y a donc pas de boucle infinie en cause dans mon cas en tout cas.
Mais je suspecte Moodle de choper en masse les données en base sans se soucier de la taille qu'elles prennent. Et dans mon cas (122 000 lignes), je suppose que c'est gourmand à récupérer.
Après est-ce un problème de script mal écrit ou de données trop importantes à récupérer, je ne saurais dire.
Ironiquement le fichier contient 99,9999% de lignes de logs comme celle-ci (du au
cron) :
27 août, 17:00 Admin - Cours: C2I S2 Système Événement de calendrier créé The user with id 'x' created the event 'Dépôt TD2' with id 'xxxx'. cli xx.xx.xx.xx
Bref, c'est peut etre "normal" ou pas mais c'est un autre sujet,
Pr info, quand je demande la page, le
processus web utilise un des 8 processeurs du serveur à 100%, 1748 Mo de mémoire virtuelle, et 1036 Mo de mémoire réelle (13% de la mémoire du serveur). Ca me parait énorme et donc pas du tout optimisé (si 10 personnes lancent ce script, le serveur est mort).
Quand je l'ai relancé avec memory_limit à 2000Go, c'est le maximum_execution time qui a été atteint (300).
- d'autres l'ont eu dans d'autres circonstances :
MDL-29803,
MDL-29861Bref, dans un premier temps, il faudrait déterminer si les limites sont bien prises en compte, dans un second temps savoir si cela provient bien de Moodle.
Mais il est clair que Moodle a quelques sérieux problèmes, notamment quand il commence à y avoir beaucoup de données.
Il peut y aussi avoir d'autres
modules qui limitent la mémoire utilisable par les scripts (comme
Suhosin, qui me bloquait certains scripts Moodle également).