Bonjour,
N'ayant trouvé nulle trace de ce problème sur la toile, je viens faire appel à vos lumières.
Le contexte:
Je dispose d'un environnement Linux (Ubuntu server), Apache2, MySQL, PHP5. Le nettoyage des fichiers de session obsolète se fait via un cron mis en place à l'installation de php5 (cron.d/php5) et qui s'execute toutes les demis heure. Apache est configuré en mode prefork avec un ServerLimit + MaxClient égal à 900. Le site hébergé a un trafic relativement élevé (250k-300k visites quotidiennes).
Le problème:
Lorsque le cron qui nettoie les fichiers de session du repertoire /var/lib/php5 s'execute, il occupe l'ensemble des "slots" d'apache encore disponible et fait tomber le serveur pendant les 3-4 minutes que dure le nettoyage. Ce n'est pas admissible.
Solutions envisagées:
- Augmenter le ServerLimit et le MaxClient, ce qui ne change rien au probleme, s'il est fixé à 2000, les 2000 process seront occupés, etc.
- Supprimer l'ensemble des fichiers de session par cron la nuit, temps d'indisponibilité plus long (rm 2-3 millions de fichiers..), mais une seule fois par jour. C'est la solution adoptée actuellement en désespoir de cause.
Merci d'avance pour vos réponses.
Partager