Stage Flavien Crochard Semaine 16
Modification des scripts shell
Mediboard intègre des scripts shell qui sont utilisés par des crons. Certains de ces scripts utilisent des paramètres optionnels, mais n'étaient pas précisés grâce au tiret. J'ai rajouté cette fonctionnalité en utilisant getopt.
Problème avec php < 5.3
En essayant de générer des PDF sur un serveur disponible dans les locaux, je me suis aperçu que cette génération (20 PDF) consommait de plus en plus de mémoire pendant l'exécution du script. En me renseignant sur Internet, je me suis rendu compte que le garbage collector dans php n'est apparu qu'à la version 5.3. J'ai tout de même implémenté un nettoyage des objets avec le destructeur (méthode __destruct). Dans cette fonction, j'ai mis à null les variables de classe, puis effectué un unset sur ces mêmes variables. Dans le script général, j'ai appelé le destructeur de l'objet htmltopdf à chaque fin de génération de PDF. Mais cela n'a rien changé. La mémoire allouée ne cesse d'augmenter. Au bout d'un certain de nombre d'appels à ce scripts, la RAM est complêtement utilisée et le serveur swap (il écrit ce qu'il ne peut mettre dans la RAM sur le disque dur).
Un graphique qui explique bien le problème :

Script de benchmark
J'ai utilisé un script existant appelé request.sh qui permet d'exécuter un wget vers mediboard. La ligne de cron aura la forme suivante :
*/1 * * * * sh [racine de mediboard] /shell/request.sh [url de mediboard] [user_mediboard] [mdp] m=dPcompteRendu\&a=benchmark_pdf
Explication de cette ligne : Toutes les minutes, on exécute le script qui va générer un nombre prédéfini de PDF. Ce nombre sera défini suivant la puissance du serveur.
Dernièrement modifié par flavien
, Basé sur le travail de
system
.
Modifiée dernièrement le lundi 17 de mai, 2010 09h55m16.
