2010-01-11 18 views
1

Je me demande simplement pourquoi le redémarrage du pool d'applications IIS 7 est une bonne pratique? Je sais que cela va nettoyer les ressources orphelines comme les threads ou l'état de la session, mais comment les autres serveurs web traitent-ils ce genre de problème? Est-ce que java developer/admin doit redémarrer weblogic/websphere/apache/tomcat de temps en temps pour nettoyer les déchets en mémoire?Avons-nous vraiment besoin de redémarrer le pool d'applications IIS 7? Est-ce que la même pratique s'applique à d'autres serveurs Web?

Répondre

3

Typiquement, il est utilisé pour compenser une mauvaise programmation. Parfois les vôtres, parfois des tiers en fonction des bibliothèques que vous utilisez. Et, comme pour toutes les recommandations, il est préférable de regarder votre environnement spécifique pour voir si c'est vraiment nécessaire avant de le faire.

Commencez par profiler l'application. Un moyen simple est de le laisser fonctionner pendant un certain temps sous charge. Cherchez des choses comme l'utilisation de la mémoire s'installe ou ne cesse de croître? Si elle ne cesse de croître, vous devrez configurer IIS à recycler de temps en temps et aller réparer votre application. Si ça grandit jusqu'à un certain point puis s'installe alors vous devriez être très bien. Assurez-vous de tester même les cas limites de votre application.

+0

Je suis d'accord. À mon avis, il s'agit d'une tâche administrative et non pour le programmeur, bien qu'il existe une API pour faire de telles choses http://msdn.microsoft.com/en-us/library/microsoft.web.administration.applicationpool.aspx –

0

Avec IIS, il est possible d'avoir du code non géré - le meilleur exemple est un objet COM - qui ne se comporte pas bien. En conséquence, vous pouvez configurer votre IIS pour recycler les processus périodiquement, pour permettre la fuite de mémoire qui pourrait se produire avec un tel code.

Il n'est pas nécessaire de le faire cependant. Vous pouvez éliminer les seuils de redémarrage si vous préférez ne pas redémarrer les processus.

Si cette idée n'existe pas sur d'autres serveurs, cela peut être dû au fait que d'autres serveurs autorisent uniquement le code managé.