En primer lugar hay una gran visión de conjunto del ciclo de vida de petición HTTP IIS7 y varios ajustes que afectan al rendimiento aquí:IIS7 canalización integrada: Interacción entre maxConcurrentRequestsPerCPU y requestsQueueLimit Opciones
ASP.NET Thread Usage on IIS 7.0 and 6.0
Muy específicamente, sin embargo, en dotNet 4 los valores predeterminados para maxConcurrentRequestsPerCPU y requestsQueueLimit se establecen en 5000. Por ejemplo, equivalente a: (en aspnet.config):
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" /> (** see note below)
</system.web>
Me parece que en un multi-CPU del servidor/núcleo del requestQueueLimit aquí siempre se invoca así berfore límite de la 'perCPU'. Por lo tanto, si lo que realmente desea es un máximo de 5000 solicitudes por CPU, entonces esperaría que el requestQueueLimit se aumentara a 5000 * CPUCount o simplemente se desactivara por completo.
¿Mi interpretación es correcta? Si es así, ¿puedo desactivar requestQueueLimit? (configurarlo a cero?). La documentación sobre esta configuración no parece abordar esta pregunta (¿entonces quizás me falta algo o está malinterpretando?)
** nota al margen del artículo anterior: RequestQueueLimit tiene un nombre incorrecto. De hecho, limita la cantidad máxima de solicitudes que ASP.NET puede atender al mismo tiempo. Esto incluye tanto las solicitudes que están en cola como las solicitudes que se están ejecutando. Si el contador de rendimiento "Solicitudes actuales" excede requestQueueLimit, las nuevas solicitudes entrantes se rechazarán con un código de estado 503)
Le pedí a Thomas (autor de la publicación que señala) que comente sobre esto. –