[IIS] On désactive le recyclage des pools, ou on le contrôle ?
Par défaut dans IIS, un pool applicatif est recyclé toutes les 29 heures (et quand le serveur reboot). Cette valeur permet que ce recyclage ne se produise pas toujours à la même heure. Ce recyclage peut cependant poser problèmes s’il se produit alors que vos utilisateurs ont un usage intensif du site web associé.
Pour éviter les problèmes, certains administrateurs et/ou développeurs désactivent le recyclage du pool.
Malheureusement cette action peut provoquer d’autres désagréments. Les ressources n’étant jamais libérées, on peut avoir :
- Des verrous sur des fichiers.
- Des connexions à des bases de données qui ne se ferment jamais.
- Un usage de la RAM supérieur à qu’il devrait être.
- Des fuites de mémoires.
- ... etc …
De manière générale, une application web peut aussi :
- Contenir des bugs.
- Nécessiter des optimisations (que vous n’avez pas le temps de planifier).
- Utiliser de nombreuses variables statiques (certaines ont peut-être besoin d’être réhydratées périodiquement ?).
Le recyclage du pool peut justement éviter les problèmes liés aux ressources, et vous aider le temps que vous résolviez les erreurs de jeunesse de vos applications web.
Heureusement, IIS offre la possibilité de contrôler quand le pool est recyclé. Comme de coutume sur IIS, il faut passer par la liste des pools. Un clic droit sur le pool à configurer permet de sélectionner les paramètres avancés du pool.
Attention à ne pas sélectionner la seconde option présente dans ce menu. Celle-ci permet de fixer des valeurs par défaut pour tous les pools du serveur. Ces valeurs ne seront appliquées qu’aux pools dont les paramètres n’ont pas été changés manuellement.
Via les paramètres du pool on peut mettre à 0 le paramètre « Intervalle de temps régulier (minutes) » pour désactiver le recyclage par défaut (1740 minutes étant égal à 29 heures). On peut ensuite utiliser le bouton « … » qui apparait quand on sélectionne la ligne « heures spécifiques ». Ceci va ouvrir le formulaire pour choisir les heures de recyclage.
On peut alors utiliser les boutons « Ajouter » et « Supprimer » pour définir des heures de recyclages.
Après validation de ce formulaire et du précédent, les paramètres sont appliqués au pool. Celui-ci sera alors recyclé à heures fixes.
Ensuite, pour éviter le problème de démarrage à froid de l’application web, on peut utiliser les options de démarrage automatique fournies par IIS.
Simple, facile et efficace ;)
Note : Cette option est disponible sur toutes les versions de IIS en service actuellement. Windows 2003 R2 et ces prédécesseurs n’étant plus à utiliser aujourd’hui, je n’ai pas monté de VM pour faire le test.