In primo luogo c'è una grande panoramica del ciclo di vita IIS7 richiesta HTTP e le varie impostazioni che influiscono sulle prestazioni qui:IIS7 integrata Pipeline: Interazione tra maxConcurrentRequestsPerCPU e requestsQueueLimit Opzioni
ASP.NET Thread Usage on IIS 7.0 and 6.0
Molto particolare anche se, in dotNet 4 le impostazioni predefinite per maxConcurrentRequestsPerCPU e requestsQueueLimit sono impostati su 5000. Es. equivalente a: (in aspnet.config):
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" /> (** see note below)
</system.web>
mi sembra che su un multi-CPU/core server della requestQueueLimit qui sarà sempre richiamato ben berfore limite del 'perCPU'. Quindi, se un massimo di 5000 richieste per CPU è ciò che realmente si desidera, allora mi aspetto che la requestQueueLimit debba essere aumentata a 5000 * CPUCount o semplicemente disabilitata del tutto.
La mia interpretazione è corretta? In tal caso, posso disabilitare requestQueueLimit? (impostarlo su zero?). La documentazione su questa impostazione non sembra rispondere a questa domanda (quindi forse mi manca qualcosa o fraintendere?)
** nota a margine dell'articolo precedente: La requestQueueLimit è mal denominata. Limita effettivamente il numero massimo di richieste che possono essere servite da ASP.NET contemporaneamente. Ciò include sia le richieste in coda che le richieste in esecuzione. Se il contatore di prestazioni "Richieste correnti" supera requestQueueLimit, le nuove richieste in arrivo verranno rifiutate con un codice di stato 503)
Ho chiesto a Thomas (autore del post che punti a) di commentare questo. –