web-dev-qa-db-fra.com

Pourquoi les pools d'applications IIS doivent-ils être recyclés?

Les pools d'applications dans IIS sont recyclés très fréquemment et je ne peux pas comprendre pourquoi. Je me souviens d'avoir lu un problème possible dans IIS6 qui signifiait que vous étiez obligé de recycler, mais une recherche rapide se révèle maintenant vide Sur IIS6 ou 7, vous pouvez désactiver le temps d'inactivité, la durée et les options de recyclage de temps spécifiques, donc aucun problème.

Alors, pourquoi chaque site .net recycle-t-il le pool d'applications? Si un site ne présentait aucune fuite de mémoire, pourriez-vous configurer un site qui n'a jamais eu besoin de recycler?

À défaut, quelle serait la meilleure façon de s'assurer que les tâches en arrière-plan sont appelées, existe-t-il des modules de redémarrage automatique pour IIS ou un service externe devrait-il être utilisé pour effectuer ces appels?

On dirait qu'il est possible de le faire si vous en avez vraiment envie/besoin?

23
Daniel Little

Les sites Web sont destinés à continuer à fonctionner (bien qu'ils soient de nature apatride). Il existe une multitude de raisons pour lesquelles le recyclage du pool d'applications peut être bénéfique pour la plate-forme d'hébergement pour garantir que le site Web et le serveur fonctionnent de manière optimale. Ceux-ci incluent (mais sans s'y limiter) les assemblys compilés dynamiquement restant dans le domaine d'application, l'utilisation de la mise en cache de session (sans garantie de nettoyage), d'autres sites Web en cours d'exécution et les ressources consommées au fil du temps, etc. Un pool d'applications peut généralement servir plus d'un site Web , le recyclage des pools d'applications peut donc être bénéfique pour garantir le bon fonctionnement de tout.

Outre le démarrage initial lorsque l'application se rallume, l'effet devrait être minime. Http.sys conserve les demandes pendant le démarrage d'un nouveau processus de travail, donc aucune demande ne doit être supprimée.

23
Matthew Abbott

De https://weblogs.asp.net/owscott/why-is-the-iis-default-app-pool-recycle-set-to-1740-minutes

Vous pouvez vous demander si un recyclage fixe est même nécessaire. Un recyclage quotidien est juste un pansement pour rafraîchir IIS au cas où il y aurait une légère fuite de mémoire ou autre chose qui se glisse lentement dans le processus de travail. En théorie, vous n'avez pas besoin d'un recyclage quotidien sauf si vous avez un problème connu. J'avais l'habitude de vous recommander de l'éteindre complètement si vous n'en avez pas besoin. Cependant, je penche plus aujourd'hui vers le paramétrage du recyclage une fois par jour à une heure creuse en tant que proactif mesure.

Ma raison est que, premièrement, votre site devrait pouvoir survivre à un recyclage sans trop d’impact, donc le recyclage quotidien ne devrait pas être un problème. Deuxièmement, j’ai constaté que même les pools d’applications qui se comportent bien peuvent éventuellement avoir quelque chose qui se faufile au fil du temps et qui a une incidence sur le pool d’applications. J'ai vu des problèmes de modèles de trafic qui provoquent une mise en cache excessive ou quelque chose d'étrange dans l'application, et j'ai vu le très rare bug IIS (rare en effet!) Qui ne pose pas de problème si est-ce un pansement? Peut-être, mais si un recyclage quotidien empêche un problème non critique de se propager au sommet, je pense que c'est une bonne mesure proactive pour économiser beaucoup d'efforts de dépannage sur quelque chose qui ne l'est probablement pas. Il est important de résoudre les problèmes. Cependant, si vous pensez que vous avez un problème réel qui est supprimé par le recyclage, désactivez le recyclage automatique afin de pouvoir localiser et résoudre votre problème. Il n'y a pas de réponse en noir et blanc Vous seul pouvez prendre la meilleure décision pour votre environnement.

Il y a beaucoup plus d'informations utiles/intéressantes pour quelqu'un qui n'est pas assez instruit dans le monde IIS (comme moi), je vous recommande de le lire.

2
Orangutech