У меня есть приложение, в котором мы храним наборы данных в HttpRuntime.Cache ТОЛЬКО для операций выбора (всего ~ 20 МБ данных, если набор данных сохраняется в формате xml).
Мы мигрировали на новый сервер Windows 2008 x64где IIS на основе сайта Кэширование вывода было включено.Наш пул приложений также настроен на режим x64.Все прошло хорошо, приложение работало с серьезной нагрузкой и около 2 ГБ памяти.
Без изменений в приложении и без дополнительного трафика приложение начало поглощать всю память на сервере, которая в настоящее время составляет 7 ГБ.
Я попытался отключить кэширование вывода,но это совсем не помогло.Единственный способ решить эту проблему - перезапустить пул приложений, но это решение приводит к потере всех пользовательских сессий.
В моем понимании элементы HttpRuntime.Cache являются глобальными для пула приложений.Мы только вставляем элементы в кэш при событии загрузки приложения, поэтому никаких изменений в элементах кэша не должно быть.
При отключенном кэшировании вывода и без дополнительных вставок в кэш, что может привести кнеожиданный рост памяти?