Мы размещаем довольно большой (самостоятельно написанный) сайт ASP.NET для наших клиентов. Он состоит из веб-службы, веб-сайта и веб-сайта, обслуживающего изображения, и все они находятся в своем собственном виртуальном каталоге. Три виртуальных каталога находятся в одном пуле приложений. В пуле для обоих пределов памяти (максимальная виртуальная память и максимальная используемая память) установлено значение 500 мегабайт.
Тем не менее, пул приложений подвергается множеству повторений, даже если только один пользователь одновременно.
Сообщение журнала событий говорит:
Рабочий процесс с идентификатором процесса "xxxx", обслуживающим пул приложений "xxxx", запросил повторную загрузку, поскольку достиг своего предела виртуальной памяти.
Тем не менее, наблюдение за рабочим процессом с помощью Process Explorer не показывает ничего, что поддерживает это сообщение. Какие счетчики я должен смотреть, чтобы наблюдать за памятью, которая фактически ограничена обеими настройками?
Обновление 1
Наблюдение за процессом в Диспетчере задач показывает «использование памяти» и «размер виртуальной машины» около 100 МБ, однако процесс повторяется с указанным выше сообщением. 5 ГБ физической памяти доступно на сервере ...
Обновление 2
Хотя веб-сайт довольно большой, проблема заключается в небольшой части приложения. Он выполняет запрос (используя Oracle) и привязывает результаты к сетевому контролю и ретранслятору. Результаты состоят из краткого описания и значка (загруженного через веб-сайт, обслуживающий изображения). Если я выполняю 10 поисковых действий друг за другом, каждое из которых дает 9 результатов, рабочий процесс показывает использование памяти и размер виртуальной машины около 100 МБ и перезапускается ...
Обновление 3
Переключение использования веб-сайта, обслуживающего изображения, не приводит к лучшим результатам. Поэтому я считаю справедливым сказать, что проблема в чем-то другом.