Мы используем Windows 2008 R2 и IIS 7, работающие на Amazon EC2. В IIS выполняется одно приложение .NET, написанное на C #.
У нас проблемы с производительностью, и я хочу выделить приложению больше памяти, но не могу понять, как это сделать. Как мне контролировать объем памяти, который получает CLR?
Я новичок в IIS, .NET и CLR. Если бы я работал с Java, я бы просто использовал флаг -Xmx для увеличения памяти, доступной JVM (например, -Xmx3000m для 3 ГБ). Но я не могу понять, как это сделать в мире Windows.
CLR, размещенная в пуле приложений для веб-приложения, будет захватывать столько памяти, сколько необходимо, а затем, в зависимости от потребности в памяти, использовать сборку мусора по мере необходимости для освобождения памяти.
Вы можете установить ограничения на объем памяти, доступной для пула приложений (в пользовательском интерфейсе, через диалоговое окно Advanced Settings или через PowerShell и модуль WebAdministration).
Возможно, вы захотите проверить, установлены ли уже ограничения для памяти в пуле приложений, но на самом деле нет способа выделить больше памяти непосредственно в пул приложений без редактирования machine.config для версии .NET, которую запускает приложение. под.
РЕДАКТИРОВАТЬ: Автоконфигурация по умолчанию для ограничений памяти в IIS 7 составляет 60 процентов ОЗУ машины. Его можно увеличить вручную, отредактировав файл machine.config для версии .NET, под которой работает ваше приложение. Подробная информация о различных настройках конфигурации здесь.