IIS7 Integrierte Pipeline: die Interaktion zwischen maxConcurrentRequestsPerCPU und requestsQueueLimit Einstellungen

Erstens gibt es eine tolle übersicht über die IIS7 HTTP-request-Lebenszyklus und die verschiedenen Einstellungen, die die Leistung beeinflussen hier:

ASP.NET Thread-Nutzung unter IIS 7.0 und 6.0

Sehr speziell aber in dotNet 4 die Standardwerte für maxConcurrentRequestsPerCPU und requestsQueueLimit eingestellt sind 5000. E. g. äquivalent zu: (in aspnet.Konfiguration):

<system.web>
   <applicationPool 
      maxConcurrentRequestsPerCPU="5000" 
      maxConcurrentThreadsPerCPU="0" 
      requestQueueLimit="5000" /> (** see note below)
</system.web>

Scheint mir, dass auf multi-CPU/core-server der requestQueueLimit hier wird immer aufgerufen werden, auch bevor die "perCPU' begrenzen. Wenn also ein Maximum von 5000 Anfragen pro CPU ist, was Sie wirklich wollen dann würde ich erwarten, dass die requestQueueLimit erhöht werden muss, um zu 5000 * CPUCount oder nur vollständig deaktiviert.

Ist meine interpretation korrekt? Wenn ja, kann ich das deaktivieren requestQueueLimit? (setzen Sie ihn auf null?). Die Dokumentation dieser Einstellung nicht angezeigt wird, um auf diese Frage einzugehen (also vielleicht bin ich etwas fehlt oder verlesen?)

** Anmerkung aus dem obigen Artikel: Die requestQueueLimit ist schlecht benannt. Tatsächlich begrenzt die maximale Anzahl von Anfragen, die bearbeitet werden können, indem ASP.NET gleichzeitig. Dies gilt sowohl für Anfragen, die sind in der Warteschlange und Anforderungen, ausgeführt werden. Wenn der "Aktuelle Anforderungen" Leistungsindikator übersteigt requestQueueLimit, neu eingehende Anträge werden abgelehnt mit der Statuscode 503)

  • Ich fragte Thomas (Autor von dem Beitrag, den Sie zeigen) zu kommentieren.
InformationsquelleAutor redcalx | 2011-01-19
Schreibe einen Kommentar