Рабочие процессы IIS занимают много памяти на наших серверах. Я хочу ограничить память, которую может использовать каждое приложение. Я запутался, стоит ли мне устанавливать ограничение на ограничение виртуальной памяти или ограничение на частную память. Каждое приложение в нашем IIS находится в собственном пуле приложений.
Если я установлю ограничение частной памяти на 500 МБ и ограничение виртуальной памяти на 3 ГБ. Когда происходит перезапуск пула приложений? Перерабатывает ли он после достижения 500 МБ или после достижения 3 ГБ.
Advanced Settings -> Recycling
.Ответы:
IIS будет соблюдать оба этих ограничения.
Если вы установите ограничение в 500 МБ для частного байта, как только рабочий процесс попытается зафиксировать 501 МБ, IIS раскрутит новый рабочий процесс и уничтожит старый.
Если вы установите ограничение в 3 ГБ виртуальной памяти, как только рабочий процесс попытается зарезервировать 3.001 ГБ, IIS раскрутит новый рабочий процесс и уничтожит старый.
Если вы работаете на 64-битной платформе, вы должны знать, что приложение ASP.NET активно резервирует виртуальную память. Например, у меня есть приложение на ферме, которое использует только 88 МБ частных байтов, но сейчас оно имеет виртуальный размер 5,4 ГБ. Я считаю, что резервирование виртуальной памяти является функцией физической памяти на сервере. Также важно понимать, что на 64-битной платформе резервирование больших объемов виртуальной памяти не влияет на производительность.
В основном, если у вас есть проблемы с использованием памяти на сервере IIS, параметр, который вы хотите ограничить, это частная память / байты, это то, что соответствует фактическому использованию памяти.
источник