Piscines IIS App - Stop / Start vs Recyclage
-
23-08-2019 - |
Question
J'ai remarqué que l'une de mes applications web de production, quand je recycle manuellement un pool d'application, le processus de travail recyclé peut prendre plus de plus de 60 secondes pour être complètement détruit en fait, basée sur l'observation dans le Gestionnaire des tâches. Cependant, si j'arrête la piscine app complètement, le processus de travail disparaît presque instantanément -. Dans les 1-2 secondes
Alors, ma question est double:
a) Pourquoi faut-il tant de temps pour détruire le processus (et de façon plus significative, libérer les ressources utilisées / verrouillés par elle) lorsque le pool d'application est recyclée au lieu d'arrêté; et
b) En supposant que je l'ai arrêté le trafic d'être dirigé vers le serveur, est-il raison de ne pas arrêter / démarrer au lieu de recycler?
Edit: Pour clarifier, avant que je soit recycler ou d'arrêter la piscine app, j'arrête le trafic d'être envoyé au serveur en question (le serveur est une charge équilibrée groupe, et je supprimer le serveur de l'équilibrage de charge). Donc, en théorie, il devrait y avoir aucune demande à venir sur le site Web au moment où je suis en train de faire quoi que ce soit à la piscine de l'application.
Modifier Partie Deux: Après avoir lu le lien de Igal, il me semble assez évident pour ce qui se passe. Quand je recycle le pool d'application, le nouveau processus est démarré, mais comme il n'y a pas de trafic du tout, il n'enregistre pas le nouveau processus de fonctionnement, il ne ferme pas l'ancien jusqu'à ce que le délai d'attente (qui est 90 seconde).
Avec cette connaissance, il est clair pour moi que la « recycler » fonctionnalité est spécifiquement destiné à être utilisé en cours de route sur un serveur en direct, et depuis que je suis la vidange manuelle radioguidage, j'utiliser stop / start à la place.
Autres conseils
Un recyclage si je me souviens bien permet à toutes les demandes existantes pour finir il recycle le pool d'applications. Un arrêt se termine simplement à l'instant précis que vous arrêtiez.
Selon ce lien ,
Arrêter - en arrêtant un pool d'applications, vous instruisez tous les processus de travail IIS servant ce pool d'applications de fermer, et éviter tout processus de travail supplémentaires soient mis en route avant le pool d'applications est relancée. Cela déclenche une gracieuse arrêt des processus de travail, chaque processus de travail en essayant pour drainer l'ensemble de ses demandes et puis la sortie.
Si un processus de travail ne sort pas dans le laps de temps spécifié par la propriété de configuration shutdownTimeLimit dans le processmodel élément de définition de chaque pool d'applications (par défaut: 90 sec), WAS prendra fin avec force (cela ne se produit pas si un débogueur natif est fixé).
Par conséquent, arrêter un pool d'applications est une action perturbatrice qui les causes déchargent des domaines d'application ASP.NET, processus enfants FastCGI, et perte d'un état de l'application en cours.
Recyclage - recyclage d'un pool d'applications en cours d'exécution toutes les causes des processus de travail IIS dans ce pool d'applications pour être avec élégance arrêt, mais contrairement à l'arrêt de la piscine, de nouveaux processus de travail IIS peut lancés à la demande pour traiter les demandes ultérieures.
Le recyclage d'un pool d'applications est une bonne façon de provoquer la remise à zéro état de l'application et toute configuration en cache par le travailleur IIS processus qui ne soit pas mise à jour automatiquement (la plupart du temps global clés de registre), sans perturber le fonctionnement du serveur. Cette rend le recyclage du pool d'applications une excellente alternative à un Iisreset dans la plupart des cas.