ASP.Net приложение становится медленным со временем - PullRequest
0 голосов
/ 07 марта 2012

Наши пользователи устаревшего веб-приложения, написанного на ASP.net 2.0, испытывают замедление после использования приложения в течение некоторого времени (через 2 часа или около того).Например, нажатие кнопки для выполнения некоторых вычислений и обновления панели обновления ajax занимает несколько секунд, в то время как это почти мгновенно, когда они только что вошли в систему.

Если они выходят из системы и снова входят в веб-приложение, оновернуться к нормальной скорости снова, каждый раз, когда они делают.Замедление для конкретного пользователя, а не глобальное.Он может быстро работать для пользователя и замедляться для пользователя, находящегося рядом с ним.

Я посмотрел на сервер IIS, и на нем достаточно свободной памяти, а загрузка ЦП почти всегда ниже 10%.В настоящее время этим веб-приложением пользуются только дюжина пользователей, поэтому масштабируемость не должна быть проблемой.

Единственное, что я могу думать о том, что на меня могут повлиять выходы из системы, - это состояние сеанса.Я уже посмотрел ViewState тоже, и это «всего» 18 КБ на самых медленных, которые не должны быть узким местом, тем более, что они находятся в одной гигабитной локальной сети, а не удаленно.Это не меньше, когда приложения работают быстро.Если посмотреть на состояние сеанса в коде, он используется не очень часто, и большие объекты не сохраняются.Согласно моим тестам, он не увеличился больше, чем на 10 элементов и 500 байт за несколько минут.Даже если произошла утечка, сервер должен быть в состоянии справиться с этим, учитывая объемы памяти, которую он имеет (4 ГБ, но только с использованием 300 МБ).

Я очистил временные файлы и, похоже, он неиметь какое-то существенное значение.

Как вы думаете, эти замедления могут быть вызваны чем-то иным, чем состояние сеанса, учитывая, что выход из системы и возврат к ней возвращает скорость к норме?Если нет, есть ли какой-либо инструмент, который вы бы предложили профилировать в сеансном состоянии, или параметр в IIS, который я должен попытаться изменить?

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Вы проверили свою базу данных? (Я предполагаю, что вы используете некоторые данные с помощью приложения ajax)

Если вы не закроете соединение в блоке Наконец, вы можете подключиться к соединениям с базой данных зомби, которые замедляют работу приложения. Я не знаю, является ли это основной причиной, но, вероятно, стоит посмотреть.

1 голос
/ 07 марта 2012

Если это тяжелая страница AJAX и пользователь остается на той же странице (то есть много обратных ссылок на себя), то возможно, что это просто ViewState, увеличивающийся до большого размера. и замедление происходит из-за PageSize.

Я бы попытался воссоздать опыт локально и отслеживать размер страницы / трафик с помощью чего-то вроде Firebug / Fiddler. Если это проблема ViewState / размера страницы, вы можете взглянуть на перемещение ViewState на сервер

См. Их для получения дополнительной информации.

http://professionalaspnet.com/archive/2006/12/09/Move-the-ViewState-to-Session-and-eliminate-page-bloat.aspx

1 голос
/ 07 марта 2012

как выглядит память браузера на клиентских машинах, когда они испытывают замедление?Это может быть утечка памяти в вашем javascript, если вы используете много AJAX-содержимого, а память браузера постоянно поднимается.

...