Php fcgi memory leaks

Avec la configuration que j’avais donnée auparavant pour charger php via FCGI, les enfants n’étaient jamais “killés” et les heures passant le serveur fastCGI prenait de plus en plus de mémoire au point de sérieusement entamer dans la RAM et donc passer sur le swap comme le montre la jolie montagne rouge.


La solution est de faire comme apache et de forcer fastCGI a tuer son enfant après un nombre donné de requêtes.
Plus grand est le nombre donné de requêtes moins souvent il devra rebooter (et sera donc disponible pour les clients et donc plus rapide à la détente), mais plus gros il sera en mémoire. J’ai essayé un premier chiffre de 500 requêtes. Comme dans mon cas j’ai 3 enfants php, ça signifie qu’il y aura eu reboot du pool complet toutes les 1500 requêtes +-.

Il vous suffit de glisser le code ci entre la ligne DAEMON= et DAEMON_ARGS (la place n’a pas beaucoup d’importance tant que c’est dans les variables du début en réalité)

# Specify the requests limit for a php instance (prevent memory leaks)
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS;

J’ai mis à jour la configuration dans mon script init.d évoqué précédemment donc si vous voulez tout le script n’hésitez pas.

Posted in Hosting by El Gnap at January 8th, 2012.
Tags: , , , , ,

Comments are closed.