Este parece uno de esos casos en los que la simulación (o el acceso al código fuente ...> suspiro <) probablemente será la única forma de ver cuál es el comportamiento con cierto grado de confianza.
La documentación para la entrada del registro de eventos para el reciclaje de cuotas de CPU habla sobre el reciclaje de la siguiente manera:
De forma predeterminada, el reciclaje del grupo de aplicaciones se superpone, lo que significa que el proceso de trabajo que se va a cerrar se mantiene en ejecución hasta que se inicia un nuevo proceso de trabajo. Después de que comienza un nuevo proceso de trabajo, se le pasan nuevas solicitudes. El antiguo proceso de trabajo se cierra después de que termina de procesar sus solicitudes existentes, o después de un tiempo de espera configurado, lo que ocurra primero. Esta forma de reciclaje garantiza un servicio ininterrumpido a los clientes. Sin embargo, si una aplicación en el grupo de aplicaciones no puede ejecutar más de una instancia de sí misma a la vez, se puede deshabilitar la rotación superpuesta.
Me parece que, por definición, terminar un proceso de trabajo debido al consumo excesivo de CPU significaría que no se permitiría completar las solicitudes pendientes (ya que están agotando la cuota de CPU).
Para hablar de su mayor preocupación: no veo nada que me haga creer que un nuevo proceso de trabajo no se activaría automáticamente. La declaración en su enlace de desbordamiento de pila me hace cuestionar si el algoritmo utilizado por IIS puede, de hecho, vincular el reciclaje con la resolución del temporizador utilizado para medir el agotamiento de la cuota de CPU. La mejor manera que sé para determinar eso sería escribir un componente del lado del servidor que desperdicie CPU, implementarlo en un entorno de prueba y ver cómo actúa su comportamiento de reciclaje. Un componente simple que se sienta en un bucle cerrado durante unos segundos y luego devuelve una cadena conocida, combinada con un cliente que ejecuta un arnés de prueba con algo así como un grupo de procesos paralelos "wget" podría ser suficiente.
Teniendo en cuenta los comentarios en la otra respuesta, he realizado mis propias pruebas, que replicaré aquí.
En mis pruebas, limitar un grupo de aplicaciones (v4.0 integrado) a un pequeño límite de CPU (0.01%) y un pequeño intervalo (1 minuto) con la acción KillW3WP habilitada, superar este límite mata el w3wp al detener el grupo de aplicaciones .
Después de alcanzar el límite de intervalo, el grupo de aplicaciones se reinicia automáticamente .
Cambiar la acción a Sin acción no altera el proceso w3wp.
En ambos casos, se registra un Evento del sistema 5025.
fuente