2008-12-24 20 views
30

Me di cuenta de que en una de mis aplicaciones web de producción, cuando reciclo manualmente un grupo de aplicaciones, el proceso del trabajador reciclado puede tardar más de 60 segundos en destruirse por completo, basado en verlo en el Administrador de tareas. Sin embargo, si detengo completamente el grupo de aplicaciones, el proceso de trabajo desaparece casi instantáneamente, en 1-2 segundos.Grupos de aplicaciones de IIS: detener/iniciar frente a reciclar

Por lo tanto, mi pregunta es doble:

a) ¿Por qué tarda tanto tiempo para destruir el proceso (y de manera más significativa, liberar los recursos utilizados/cerradas por ella) cuando el grupo de aplicaciones se recicla en su lugar de parado; y

b) Suponiendo que he detenido el tráfico de ser dirigido al servidor, ¿hay alguna razón para NO detener/iniciar en lugar de reciclar?


Editar: Para aclarar, antes de que sea reciclado o detener el grupo de aplicación, dejo de tráfico de ser enviado al servidor en cuestión (el servidor está en un clúster de equilibrio de carga, y retire el servidor del equilibrador de carga). Entonces, en teoría, no debería haber solicitudes en el sitio web en el momento en que hago algo para el grupo de aplicaciones.


Editar Part Deux: Después de leer el enlace de Igal, parece bastante obvio para mí lo que está sucediendo. Cuando reciclo el grupo de aplicaciones, se inicia el nuevo proceso, pero como no hay tráfico, no está registrando el nuevo proceso como funcional, por lo que no cierra el anterior hasta el tiempo de espera (que es 90 segundos).

Con ese conocimiento, es claro para mí que la funcionalidad "Reciclar" está específicamente diseñada para ser utilizada en midstream en un servidor en vivo, y dado que estoy agotando manualmente el tráfico de antemano, debería usar detener/iniciar.

Respuesta

23

a) Por Overlapped Recycling. Hay un período de tiempo que el "viejo" proceso espera para que comience el nuevo.

b) No. Hasta donde yo sé.

+0

Ese enlace respondió a ambas preguntas por completo, ¡gracias! –

+0

@igal Hola, digamos que el servidor tuvo una sesión para John (inProc). ahora digamos que el administrador hizo 'reciclar'. ahora ocurre el Reciclado superpuesto. y todas las solicitudes están hechas. el nuevo proceso se inicia. ¿John tendrá ahora la MISMA IDENTIFICACIÓN DE LA SESIÓN? (El reinicio no lo guardará seguro. La pregunta es para reciclar). –

+0

@RoyiNamir Hola. Reciclar no ayudará. La ID de la sesión y los datos de la sesión se pierden después del reciclado. –

13

Un reciclaje si lo recuerdo correctamente permite que todas las solicitudes existentes finalicen y luego reciclará el grupo de aplicaciones. Una parada simplemente lo termina en el instante exacto en que lo detiene.

Cuestiones relacionadas