Использование памяти ASP.NET в IIS на порядок выше, чем в DevEnv.Это нормально? - PullRequest
1 голос
/ 05 января 2011

Привет!

У меня есть приложение ASP.NET, которое собирает данные с нескольких внешних страниц, анализирует соответствующие биты и отображает их в таблице.Общий объем полученных данных составляет 3-4 МБ, а итоговая страница - около 1 МБ.Я использую синхронный WebRequest GetResponse для поиска, но та же проблема существовала при использовании асинхронного процесса BeginGetResponse / EndGetResponse.Нет доступа к базе данных, нет хранилища сеансов, нет кэширования, но есть список в памяти около 100 объектов (всего 1 МБ данных), а также большое количество AJAX (AjaxControlToolkit).Эта проблема появляется при самом первом запуске приложения, даже если я перезапустил IIS.

Проблема:

Когда я запускаю приложение на своем компьютере разработчика, максимальный размер фиксации составляет около1.5GB.Самым крупным пользователем, измеряемым размером виртуальной машины диспетчера задач, является WebDev.WebServer.exe (600 МБ).Приложение отлично работает.

Когда я запускаю его на своем арендованном сервере (IIS 7.5, 1 ГБ ОЗУ), максимальный размер фиксации превышает 3,8 ГБ.Самый большой пользователь - w3wp.exe на 2.7GB.IIS останавливается и выплевывает страницу ошибки тайм-аута.Учитывая мой ограниченный бюджет сервера и надежду на одновременное использование нескольких пользователей, я как бы в панике.

Это нормально?Если я увеличу объем ОЗУ сервера до 4 ГБ, этого будет достаточно?Многим пользователям потребуется еще больше памяти?Может ли виновником быть AJAX или список объектов?

Спасибо за любую информацию, которую вы можете предоставить.

Ответы [ 3 ]

1 голос
/ 08 января 2011

Я думаю, что вам нужно выкопать некоторые инструменты отладки и записать дамп рабочего процесса вашего рабочего сервера, вы не сможете правильно диагностировать эту проблему с помощью только PerfMon и Task Manager.

Некоторое время назад я опубликовал этот ответ в Stack Overflow, который должен помочь вам начать:

Исключения CLR из памяти

1 голос
/ 10 января 2011

Ну, после некоторой тяжелой работы, я определил виновника: наш старый заклятый враг Бесконечный цикл.Конечно, если бы среда разработки вызвала исключение, я бы обнаружил и удалил проблему, но это не так.реагировать на ошибки по-разному, и мы должны тестировать приложение в той же конфигурации, в которой оно будет развернуто.

Спасибо всем за ваш отзыв.

1 голос
/ 05 января 2011

Вы пытались запустить это в своей среде разработки под IIS 7.5?
Убедитесь, что debug = "false", а не "true" в вашем файле web.config

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