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