от
У меня есть веб-приложение ASP.Net то есть размещенного на IIS (ОС Windows 2012R2/ служб IIS 8.5). Приложение постоянно падает статические ресурсы (т. е. статические классы/коллекций) из памяти, вызывая массовое замедление на случайных запросов. Это обычно происходит, когда рабочий процесс IIS пересекает памяти всего 900Мб(на установочном развития, общая 4 ГБ памяти), а затем падает до примерно 350 Мб. То же самое происходит на настройки производства (16 ГБ памяти, а приложения потреблять всего 1,9 ГБ, потом падает до 800мб) Настройки: В Windows 2012 R2 С Службы IIS 8.5 Требуемая Версия: 4.7.2 Целевая платформа: х64 (я заставил его
X64
от
Any CPU
, чтобы исключить 32-битные ограничения памяти). Настройки IIS: .Чистая среда CLR версии: 4.0 Включить 32-Разрядные Приложения: Ложные Режим Старта: Всегда Работает Тайм-аут простоя: 0 Тайм-аут простоя действия: приостановить Лимит Памяти : 0 Так что, как видите, я исключил все, что я мог придумать. Есть ли причина для постоянных капель? Не .Чистая среда CLR должна держать статические классы в памяти и не уронить их случайно? или я что-то пропустила?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Вы правы в том, что пул приложений должен войти перезапуска - но я отмечаю, что вы не полностью перечисленных отключения перезагрузки. По умолчанию IIS настраивается это приложение бассейнов перерабатывать каждые 29 часов (1740 мин.), Что означает, что он не перезагрузите в то же время каждый день, но он будет перерабатывать. Однако она должна выполнить "внахлест корзины" по умолчанию, где это приносит новый экземпляр, прежде чем он выключается старый. Есть несколько вариантов, которые могут помочь, если это вызвано перезапуск событий: Отключить рециркуляцию, установив "интервалом времени" в
0
. Оставить ее включенной, но использовать при инициализации приложения правильно разминаться приложения. Это является частью IIS 8, а модуль можно установить в 7.5. Вы уже установили свой режим начать
Always Running
, но с модулем инициализации приложения вы можете также объявить страница, что сервер будет запрашивать при запуске на прогрев вашего приложения:
...