2016-08-18 2 views
0

Ich habe eine IIS-Anwendung, die sich so verhält - Anzahl der gesamten Threads in IIS-Prozesse ist niedrig, Verkehr beginnt mit einer niedrigen Rate wie 5 U/min, die Anzahl der Threads beginnt ansteigend, alarmierend, geht sogar weiter Nach dem Laden stoppt, wird nicht in angemessener Zeit, erreicht wie 30.000 plus Threads, Reaktionszeit für einen Wurf geht.IIS High Thread Count

Die Maschinenkonfiguration ist auf auto_Config eingestellt.

Es gibt keine expliziten Threads in der Anwendung, obwohl es einige - sehr ausgefallene - Verwendung von parallelen für jeden gibt.

Auf der Suche nach einigen Tipps, wie gehe ich über die Diagnose. Die Parallelisierung für jeden schien zu helfen; Ich muss es noch schlüssig beweisen. Durch die Begrenzung der maximalen Anzahl von Threads wird auch die Anzahl der Threads begrenzt. aber ich denke, dass etwas mit der App nicht stimmt, was dazu führt, dass diese Threads weiter zunehmen. Ich würde das lösen wollen.

In der folgenden Abbildung ist die Anzahl der Threads NUR für IIS-Arbeitsprozesse. Die PUT-Anfragen sind die einzigen, die etwas arbeiten; gets sind meist statische Ressourcenanfragen.

enter image description here

+0

Welches Überwachungswerkzeug ist das auf Ihrem Screenshot? – serhiyb

+0

DataDog-Überwachungstool. Ich überprüfte auch die hohe Anzahl der Threads im TaskManager/Resource Monitor. – Amit

+0

Solche Daten sind nutzlos, um die Ursache zu bestimmen, aber helfen, die genauen Symptome zu zeigen. Wenn Sie einen Leistungsprofiler ausführen können, können Sie nachverfolgen, was die einzelnen Threads tun, und dann nach der Ursache suchen. Wenn nicht, kann die Hang Dump-Analyse helfen. Es gibt keine einfache Antwort auf solche Probleme. –

Antwort

0

Kann dies in einer lokalen oder Dev-Umgebung reproduziert werden? Wenn dies der Fall ist, sollten Sie sich an den Prozess binden und mithilfe der Debugging-Tools feststellen, welche Threads verwaltet werden und wo sie sich im Code befinden. Wenn das nichts enthüllt, dann ist es vielleicht an der Zeit, einen Speicherauszug aus dem Prozess zu erfassen und mit windbg zu graben.

Verwandte Themen