2015-05-06 30 views
19

Korzystanie z narzędzia do monitorowania wydajności "New Relic" Obserwuję sporadyczne (ale zbyt duże) długie opóźnienia w "AcquireRequestState". Mówię o opóźnieniach 10, 20 sekund, czasem minutach.duże opóźnienia w AcquireRequestState

Wiem, że nie napisaliśmy naszych własnych programów obsługi zdarzeń dla tego wydarzenia.

Gdzie mogę nawet zacząć szukać przyczyny tych opóźnień? Mała informacja, którą znalazłem do tej pory na msdn, nie była pomocna.

+0

Witam, czy zrobiłeś jakieś postępy w tej sprawie? Napotykamy ten sam problem, o czym donosi New Relic. –

+0

My też. @TomHall znalazłeś jakieś rozwiązanie? Widzimy opóźnienia "AcquireRequestState" tylko dla połączeń AJAX, prawda? –

+0

Widzimy to nie tylko dla żądań Ajax - ale nieco losowo. Irytujący Nowy Relik wydaje się grupować żądania GET i POST, jeśli podstawowy adres URL jest taki sam. Na razie uciekliśmy się do naszej własnej, bardziej szczegółowej, wewnętrznej rejestracji w celu zbadania. –

Odpowiedz

4

Spróbuj zastosować Hotfix Rollup 2828841 na serwerze.

Issue 6

Objawy

Podczas wysyłania wielu jednoczesnych żądań, które mają taką samą sessionid do ASP.NET 4.5 aplikacji internetowych, niektóre wnioski mogą zamarznąć na etapie RequestAcquireState niespodziewanie.

Rozdzielczość

Po zastosowaniu tej poprawki, poprawka zapewnia, że ​​ EndRequest wydarzenie zawsze będzie wyzwalać.

Ta poprawka dotyczy Windows 7 z dodatkiem Service Pack 1 (SP1) Windows Server 2008 R2 z dodatkiem SP1, Windows Server 2008 Service Pack 2 (SP2) i Windows Vista SP2 .

3

Mój zespół zobaczył opóźnienie "AcquireRequestState" zgłoszone przez NewRelic wcześniej dzisiaj, gdy jedna z naszych aplikacji ASP.NET miała problemy z wydajnością na określonej stronie.

Przyczyną źródłową okazała się zmiana procedury składowanej, którą niedawno wprowadziliśmy do bazy danych SQL Server, co nieumyślnie spowodowało, że wykonanie procedury składowania zajęło bardzo dużo czasu. Procedura składowana została wywołana jako część wyświetlania strony, która miała problem z wydajnością.

Udało nam się rozwiązać problem, identyfikując i naprawiając problem z wydajnością w procedurze przechowywanej. Problem "AcquireRequestState" od NewRelic okazał się nieistotny; był to raczej symptom problemu niż przyczyny.

To było na aplikacji ASP.NET 4.5 z systemem Windows Server 2008.

tl; dr: z „AcquireRequestState” opóźnienie donosi NewRelic może być efektem ubocznym jakiegoś innego problemu, który jest przyczyną jednego lub więcej stron i/lub żądań AJAX w aplikacji ASP.NET, aby załadować się długo.