Какие счетчики perfmon полезны для выявления узких мест ASP.NET?
Учитывая график здесь, что я должен смотреть, чтобы определить узкое место? Как видите, запросы в среднем находятся под нагрузкой около 14 секунд, и большая часть этого времени приписывается CLR в данных профилирования New Relic. В разбивке по производительности для конкретной страницы она приписывает большую часть времени странице WebTransaction/.aspx.
2 ответа
Я вижу, что база данных также считывается (оранжевая), и это швы, что одна из всех страниц задерживает остальные страницы из-за блокировки, которую сеанс делает на страницах.
Вы также можете прочитать: Полная замена сессии ASP.Net
Я предлагаю полностью удалить сеансовые вызовы и, если это невозможно, найдите другой способ сохранить их где-нибудь в базе данных самостоятельно.
На самом деле на моих страницах я сделал все три возможных варианта. 1. Я звоню на страницу без сессии. 2 Я создал полностью пользовательский сеанс, значения которого связаны с пользовательским файлом cookie, и последние 3. Я создал потоки, которые запускаются вне сеанса, и они выполняют вычисления в фоновом режиме, когда они заканчивают, я показываю результаты.
В некоторых случаях вычисления выполняются на iframe, который вызывает страницу без сеанса, и позже я показываю результаты.
В Pro версии вы можете использовать Transaction Traces, которые помогают точно определить, где происходит проблема.