Подтвердить что ты не робот

Длительные задержки в AcquireRequestState

Используя инструмент мониторинга производительности "Новая реликвия", я вижу случайные (но слишком много) длительные задержки в "AcquireRequestState". Я говорю о 10, 20 вторых задержках, иногда минутах.

Я знаю, что мы не написали собственные обработчики событий для этого события.

Где я даже начинаю искать причину этих задержек? Небольшая информация, которую я нашел до сих пор в msdn, не помогла.

4b9b3361

Ответ 1

Попробуйте применить Hotfix Rollup 2828841 на сервере.

Проблема 6

Симптомы

Когда вы отправляете много одновременных запросов, которые имеют одинаковые SessionId для веб-приложения ASP.NET 4.5, некоторые запросы могут зависнуть на этапе RequestAcquireState неожиданно.

Разрешение

После установки исправления исправление гарантирует, что Событие EndRequest всегда будет запускаться.

Это исправление относится к   Windows 7 с пакетом обновления 1 (SP1),   Windows Server 2008 R2 SP1,   Windows Server 2008 с пакетом обновления 2 (SP2) и   Windows Vista SP2.

Ответ 2

Моя команда увидела эту задержку "AcquireRequestState" , о которой вчера сообщал NewRelic, когда одно из наших приложений ASP.NET сталкивалось с проблемами производительности на определенной странице.

Основная причина оказалась изменением хранимой процедуры, которую мы недавно развернули в нашей базе данных SQL Server, что было непреднамеренно заставляло эту хранимую процедуру выполнять очень много времени. Хранимая процедура была вызвана как часть отображения страницы, которая имела проблему с производительностью.

Мы смогли решить проблему, выявив и устранив проблему производительности с помощью хранимой процедуры. Проблема "AcquireRequestState" от NewRelic оказалась неактуальной; это был признак проблемы, а не причина.

Это было в приложении ASP.NET 4.5, запущенном на Windows Server 2008.

tl; dr: Задержка "AcquireRequestState" , сообщенная NewRelic, может быть побочным эффектом какой-либо другой проблемы, вызывающей одну или несколько страниц и/или запросов AJAX в вашем приложении ASP.NET чтобы занять много времени.