lange Verzögerungen in AcquireRequestState
Mithilfe von performance-monitoring-tool "New Relic" ich sehe gelegentlich (aber zu viele) lange Verzögerungen in die "AcquireRequestState". Ich spreche hier von 10, 20 Sekunden verzögert, manchmal Minuten.
Ich weiß, dass wir nicht geschrieben haben unseren eigenen event-Handler für dieses Ereignis.
Wo finde ich sogar anfangen, auf der Suche nach der Ursache für diese Verzögerungen? Die kleinen Informationen, die ich bis jetzt gefunden habe auf der msdn-Website war nicht hilfreich.
- Hallo, haben Sie irgendwelche Fortschritte auf diesem? Wir sind der Begegnung mit dem gleichen Problem, wie berichtet, durch Neue Reliquie.
- Uns auch. @TomHall haben Sie keine Lösung gefunden? Wir sehen das "AcquireRequestState" Verspätungen nur für AJAX-Aufrufe, Sie?
- Wir sehen es nicht nur für Ajax-Anfragen - aber auch etwas zufällig. Ärgerlicherweise Neue Reliquie scheint die Gruppe GET-und POST-requests zusammen, wenn die Basis-URL ist die gleiche. Für jetzt haben wir Zuflucht zu unserem eigenen detailliertere, interne Protokollierung zu untersuchen.
- Vorausgesetzt, dies ist asp.net dies kann ein symptom der Verwendung von Session und Benutzern, die mit mehreren tabs oder mehrere AJAX-Aufrufe gleichzeitig. Wenn zum Beispiel ein Benutzer führt eine lange andauernde Bericht in einem tab alle anderen Anfragen, die der Benutzer versucht zu machen, wird gesperrt-das "AcquireRequestState" bis zum 1. tab vervollständigt. Hier ist eine bessere schreiben Sie es auf link
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein team sah dieses "AcquireRequestState" delay berichtet von NewRelic heute früher, wenn einer unserer ASP.NET Anwendungen war performance Probleme auf einer bestimmten Seite.
Der Ursache stellte sich heraus, dass eine Veränderung zu einer gespeicherten Prozedur, die wir uns vor kurzem eingesetzt, um unsere SQL-Server-Datenbank, die versehentlich verursacht, dass die gespeicherte Prozedur, eine sehr lange Zeit, um Sie auszuführen. Die gespeicherte Prozedur wurde als ein Teil der Anzeige der Seite mit dem performance-Problem.
Konnten wir das Problem beheben, durch das identifizieren und beheben von performance-Probleme mit der gespeicherten Prozedur. Die "AcquireRequestState" Ausgabe von NewRelic stellte sich heraus, irrelevant zu sein; es war ein symptom für das problem, anstatt die Ursache.
Wurde diese auf einer ASP.NET 4.5 Anwendung läuft auf Windows Server 2008.
tl;dr: Die "AcquireRequestState" delay berichtet von NewRelic kann eine Nebenwirkung von einigen anderen problem, was der eine oder mehrere der Seiten und/oder AJAX-Anfragen in Ihrer ASP.NET app, eine lange Zeit dauern zu laden.
Anzuwenden versuchen Hotfix-Rollup 2828841 auf dem server.
Dieser hotfix gilt
Windows 7 Service Pack 1 (SP1),
Windows Server 2008 R2 SP1,
Windows Server 2008 Service Pack 2 (SP2), und
Windows Vista SP2.
Ich vermute, Ihr gespeicherte Prozedur zu ändern sein könnte, Hervorhebung ein etwas anderes problem in Bezug auf die Sitzung sperren, hatten wir ungefähr das gleiche berichtet wird, die für ein anderes Szenario ist, würde ich ernsthaft gerne ermutigen, Sie zu testen, die async-Sitzung-Anbieter, wie Sie hier erwähnt und machen Sie sicher Sie benutzen den gleichzeitigen Anfragen pro Sitzung app-Einstellung :
https://stackoverflow.com/a/55331786/7581050
Letztendlich lang andauernde Prozess (in deinem Fall die gespeicherte Prozedur ändern), blockiert, keine weiteren Anfragen für diese Sitzung. Da dieser "block" ist, passiert in einem anderen Teil der IIS pipeline, NewRelic einfach Datensätze, die er als "AcquireRequestState"
PS: ich weiß, diese Antwort kommt ziemlich spät, aber ich habe endlich etwas gefunden, das gelöst, ein ähnliches problem für uns und ich vermute, dass wird helfen, viele Menschen in der Zukunft.