Вопрос: Как увеличить память, выделенную в приложение IIS .NET?


Мы используем Windows 2008 R2 и IIS 7, работающие на Amazon EC2. IIS работает на одном .NET-приложении, написанном на C #.

У нас проблемы с производительностью, и я хочу предоставить приложению больше памяти, но я не могу понять, как это сделать. Как я могу управлять объемом памяти, получаемой CLR?

Я - новичок в IIS, .NET и CLR. Если бы я работал с Java, я бы просто использовал флаг -Xmx для увеличения памяти, доступной для JVM (например, -Xmx3000m для 3 ГБ). Но я не могу понять, как это сделать в мире Windows.


7
2017-10-02 17:18


Источник




Ответы:


CLR, размещенная в пуле приложений для веб-приложения, будет захватывать как можно больше памяти, а затем, основываясь на потребностях в памяти, использовать сборку мусора по мере необходимости для освобождения памяти.

Вы можете ограничить объем памяти, доступный для пула приложений (в пользовательском интерфейсе, в диалоговом окне «Дополнительные параметры» или через PowerShell и модуль WebAdministration).

Возможно, вам захочется проверить, есть ли уже установленные колпачки для памяти в пуле приложений, но действительно нет способа выделить больше памяти непосредственно в пул приложений без редактирования файла machine.config для версии .NET, выполняемой приложением под.

РЕДАКТИРОВАТЬ: Автоконфигурация по умолчанию для кепок памяти в IIS 7 составляет 60 процентов от оперативной памяти. Это можно увеличить вручную, отредактировав файл machine.config для версии .NET, в которой работает ваше приложение. Подробная информация о различных настройках конфигурации здесь.


7
2017-10-02 18:07



Спасибо, Стивен. Однако, смотря на монитор производительности, кажется, что каждый рабочий процесс в пуле приложений ограничен 1 ГБ памяти. Это верно? - Mark Hansen
Это зависит от настроек в пуле приложений, объема ОЗУ на сервере и / или от давления в памяти других приложений. По умолчанию нет ограничений на использование памяти. У меня были пулы приложений с 2 ​​или 3 гигабайтами памяти. - Steven Murawski
Сколько памяти выделено вашей виртуальной машине? Насколько большой файл вашей страницы? Много ли происходит переключение на файл страницы? Является ли ОЗУ узким местом для вашего приложения или может быть процессором? Количество логических процессоров может влиять на количество запросов, которые может обрабатывать процесс IIS. - Steven Murawski
Я добавил дополнительную информацию о том, где вы можете настроить крышку памяти (по умолчанию она составляет 60 процентов от машинной памяти). Но я также должен убедиться, что это ваше узкое место. - Steven Murawski