91 votos

¿Qué debo hacer para asegurarse de que IIS no reciclar mi solicitud?

Tengo un servicio WCF de la aplicación alojada en IIS. Al inicio, se va y se obtiene un muy costoso (en términos de cpu y tiempo) de los recursos a utilizar como memoria caché local.

Lamentablemente, IIS parece reciclar el proceso con bastante regularidad. Así que estoy tratando de cambiar la configuración del grupo de Aplicaciones para asegurarse de que IIS no reciclar la aplicación. Hasta ahora, he cambio el siguiente:

  • Límite de Intervalo bajo de la CPU de 5 a 0.
  • Tiempo de espera de inactividad en Modelo de Proceso de 20 a 0.
  • Intervalo Regular de Tiempo bajo el Reciclaje de 1740 a 0.

Será esto suficiente? Y me tiene preguntas específicas acerca de los artículos que he cambiado:

  1. Específicamente, ¿qué hace de Límite de Intervalo de ajuste bajo de la CPU significa? ¿Esto significa que si un determinado uso de la CPU es excedido, el grupo de aplicación, serán reciclados?
  2. ¿Qué significa exactamente "reciclado"? La aplicación es completamente derribado y comenzó de nuevo?
  3. ¿Cuál es la diferencia entre "Trabajador de la paralización del Proceso" y "reciclaje del grupo de Aplicaciones"? La documentación para el Tiempo de espera de Inactividad bajo el Modelo de Proceso de las conversaciones acerca de cerrar el proceso de trabajo. Mientras que la documentación para el Intervalo Regular de Tiempo bajo el Reciclaje de hablar de reciclaje del grupo de aplicaciones. No acabo de asimilar la diferencia entre los dos. Yo pensaba que el w3wp.exe es el proceso de trabajo que ejecuta el grupo de aplicaciones. Alguien puede explicar la diferencia de la aplicación entre los dos?

La razón para tener IIS7 y IIS7.5 etiquetas es debido a que la aplicación se ejecutará en tanto y espero las respuestas son las mismas entre las versiones.

Imagen de referencia: enter image description here

114voto

TristanK Puntos 6159

Reciclaje

El reciclaje es generalmente* donde IIS se inicia un nuevo proceso como un contenedor para su aplicación, y a continuación se da la ShutdownTimeLimit a desaparecer de su propia voluntad antes de que sea asesinado.

*- por lo general: ver DisallowOverlappingRotation / "Desactivar superpuesta de reciclaje de" configuración

Es destructiva, en la que el proceso original y toda su información de estado se descartan. El uso de proceso de estado de la sesión (por ejemplo, Estado de Servidor o una base de datos, o incluso una cookie si su estado es pequeño) puede permitir que usted para evitar esto.

Pero es por defecto superpuesta - es decir, la duración de una interrupción se minimiza debido a que el nuevo proceso se inicia y se conecta a la cola de la solicitud, antes de que el viejo se dijo "[ShutdownTimeLimit] segundos en desaparecer. Favor de cumplir."

Configuración

A tu pregunta: todos los ajustes de la página de control de reciclaje de alguna manera. "Shutdown" podría ser descrito como "proactiva de reciclaje" - donde el proceso mismo decide que es hora de ir, y sale en una manera ordenada.

Reactiva el reciclaje es donde SE detecta un problema y se dispara el proceso (después de establecer un adecuado reemplazo de W3WP).

Ahora, he aquí algunas cosas que pueden causar el reciclaje de una forma u otra:

  • un ISAPI decidir no es saludable
  • cualquier módulo de estrellarse
  • tiempo de espera de inactividad
  • limitación de cpu
  • ajuste de la aplicación de las propiedades del grupo de
    • como su madre puede haber gritado en un punto: "Dejar de recoger en él, o que nunca va a conseguir mejor!"
  • "ping" fracaso * no realmente hacer ping de por sí, cos se utiliza una tubería con nombre - más "vida"detección de
  • todos los valores de configuración en la pantalla de arriba

Qué Hacer:

En general:

  • Deshabilitar tiempos de Inactividad. de 20 minutos de inactividad = boom! Nuevo proceso en la siguiente solicitud entrante. Set a cero.

  • Deshabilitar el intervalo Regular de tiempo - el 29 de hora predeterminada ha sido descrito como "una locura", "molesto" y "inteligente" por las diversas partes. En realidad, sólo dos de ellos son verdaderos.

  • Encienda DisallowRotationOnConfigChange (arriba, Deshabilitar Reycling para los cambios de configuración) si usted simplemente no puede parar de jugar con él - esto le permite cambiar cualquier app de la piscina sin que al instante de señalización para los procesos de trabajo que se necesita para ser asesinados.

Eso es suficiente para causar un comportamiento correcto proceso de vivir para siempre. Si muere, seguro, que va a ser reemplazado. Si se cuelga, ping debe elegir y uno nuevo debe empezar dentro de 2 minutos (el peor de los casos: ping frecuencia + tiempo de espera de ping + de inicio del límite de tiempo).

Limitación de CPU no es normalmente muy interesante, ya que por defecto está desactivado, y también configurado para no hacer nada de todos modos; si estuviera configurado para matar el proceso, seguro, que sería un reciclaje gatillo. Déjelo apagado.

Pero... después de entrar en .Neta de la tierra, y el dominio de aplicación de reciclaje, lo que también puede provocar una pérdida de estado.

Usted hace que al tocar una web.archivo de configuración en la carpeta de contenido (de nuevo con la cosecha!), o mediante la creación de una carpeta en la carpeta, y eso es tan destructiva como una Aplicación de la Piscina de reciclaje, menos el código nativo de los costos de inicio (es puramente un código administrado concepto, tan sólo el código administrado cosas que sucede aquí). Antivirus también pueden desencadenar esta como se escanea la web.los archivos de configuración, provocando un cambio en la notificación, causando....

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: