CPU bei 50 %, dennoch werden IIS/ASP.net-Anfragen immer noch in die Warteschlange gestellt

CPU bei 50 %, dennoch werden IIS/ASP.net-Anfragen immer noch in die Warteschlange gestellt

Wir haben eine (VMWare) VM, die beim Belastungstest anscheinend damit beginnt, Anfragen bei 120 Benutzern in die Warteschlange zu stellen.

Die CPU-Auslastung scheint nicht über 70 % zu kommen, daher verstehe ich nicht, warum die Anforderungen nicht verarbeitet werden können.

Die CPU-Zeit wird unten links in Rot angezeigt CPU-Diagramm

Antwort1

Die CPU ist nicht der einzige Engpass bei der Verarbeitung von Anfragen. Alles hängt davon ab, was Ihre Anwendung tut. Wenn Sie viel IO-gebundene Arbeit erledigen, könnte das ein größerer Faktor als die CPU sein.

ASP.net hat eine begrenzte Anzahl von Threads in seinem ThreadPool. Wenn sie also alle beschäftigt sind, werden sie in eine Warteschlange gestellt. Überprüfen Siedieses Stückfür einige Tipps zum Anstehen bei Anfragen.

Führen Sie viele SQL-Einfügungen/Aktualisierungen pro Anfrage durch? Lassen Sie sich die Zeitangaben dazu geben, sogar mit Glimpse. Wenn es zu viele davon sind, halten sie Threads/Anfragen auf, die auf Antworten warten.

Rufen Sie APIs von Drittanbietern auf? Diese halten Threads/Anfragen in der Warteschleife und es gibt Beschränkungen hinsichtlich der Anzahl der zulässigen gleichzeitigen Verbindungen.

Was macht die Anwendung für jeden Benutzer? Rufen Sie mehr als 1.000 Datensätze ab?

Überprüfen Sie diesMS Connect Support-Artikel, es gibt eine ganze Reihe von IIS-Konfigurationsoptionen, die Ihnen helfen könnten, falls Sie diese nicht bereits optimiert haben.

Auch hier gilt, dass Sie nicht wissen, was Ihre Anwendung macht und wie.

verwandte Informationen