Использование памяти ASP.NET в IIS гораздо больше, чем в Devenv. Это нормально?

StackOverflow https://stackoverflow.com/questions/4600773

Вопрос

Привет!

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

Проблема:

Когда я запускаю приложение на своем компьютере DEV, максимальная коммитация зачисления составляет около 1,5 ГБ. Самый большой пользователь, измеренный по размеру VM-диспетчера задач, является webdev.webserver.exe (600 МБ). Приложение отлично работает.

Когда я бегу в мою аренду A-Server (RAM IIS 7,5, 1 ГБ), максимальная коммитария заряда составляет более 3,8 ГБ. Самый большой пользователь W3WP.EXE на 2,7 ГБ. IIS измельчает до остановки и выплевывает страницу ошибки с замыканием. Учитывая мой ограниченный серверный бюджет и надежда наличия нескольких одновременных пользователей, я своего рода в панике.

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

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

Это было полезно?

Решение 3

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

Я бы сказал, что урок, который здесь узнал, - понять, что разные версии IIS и Devenv реагируют на ошибки по-разному и что мы должны проверить приложение в той же конфигурации, в которой он будет развернут.

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

Другие советы

Вы пытались запустить это в своей среде Dev под IIS 7.5?
Убедитесь, что отладка = «ложь», не «правда» в вашем web.config

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

Я опубликовал этот ответ на переполнении стека A, а затем начать:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top