Приложение ASP.NET зависает при небольшой нагрузке в IIS 7. Время ожидания запроса. Как отлаживать? - PullRequest
4 голосов
/ 03 июня 2011

У нас есть сайт ASP.NET, работающий на IIS7 в Windows Server 2008 - фактически мы запускаем один и тот же код на нескольких идентичных серверах.Трафик растет, и время от времени, при большем трафике, сайт (фактически приложение) перестает отвечать на запросы - или, по крайней мере, настолько медленно, что кажется не отвечающим.Единственное, что нужно сделать, это остановить / запустить W3SVC;переработка сайта или приложения не исправить.

Одни и те же симптомы случаются (иногда и на первый взгляд случайным образом) на нескольких серверах.Так что это не конкретная коробка.Эти серверы имеют 8 ГБ ОЗУ и не используют более 5 ГБ;и загрузка ЦП составляет в среднем около 40-50% даже в эти времена с большим трафиком.Так что это вряд ли проблема.

Нет ошибок приложения или базовых таймаутов (SQL и т. Д.), И ничего не записывается в журнал событий.Обычно, когда мы наблюдаем ASP.NET в PerfMon, Requests Executing колеблется около 5-10, а Requests Current около 25-40.Когда это начинается, оба эти числа постепенно увеличиваются до бесконечности, поскольку каждый запрос для клиента истекает.

Хотя я бы хотел серебряную пулю, я в основном надеюсь на лучший подход к отладке.Есть ли лучшие номера PerfMon для просмотра?Что-то, что может быть зарегистрировано?Что-нибудь попробовать или проверить?

Заранее спасибо за ваши идеи, улей-разум!

1 Ответ

1 голос
/ 04 июня 2011

У Тесс Феррандез есть отличная серия постов / лабораторных работ о том, как отлаживать такие проблемы:

.NET Debugging Demos - Информация и инструкции по настройке

К сожалению, редко существует единственная серебряная пуля для решения подобных проблем. Вам нужно получить дамп этого рабочего процесса, когда он зависает, а затем начать ковыряться в использовании WinDBG и SOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...