Использование памяти ASP.NET в IIS гораздо больше, чем в Devenv. Это нормально?
-
25-09-2019 - |
Вопрос
Привет!
У меня есть приложение 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, а затем начать: