Назад | Перейти на главную страницу

Каковы ограничения памяти для пулов приложений IIS 7.0 на сервере x86

У меня Windows Server 2008 SP2 EE x86 с 6 ГБ памяти. На IIS7 работает 10 пулов приложений. Какой объем памяти можно использовать для всех 10 пулов приложений и каждого пула приложений по отдельности? Каковы ограничения, при которых мои приложения будут генерировать исключения OutOfMemoryExceptions?

И как лучше всего отслеживать производительность и доступные бесплатные серверные ресурсы для пулов приложений IIS7? Я попытался использовать монитор производительности по умолчанию и счетчики производительности процессов (частные байты, виртуальная память, рабочий набор), которые являются идентификаторами по индексу, но я не могу связать эти счетчики с текущими пулами приложений в реальном времени.

Каждый пул приложений может использовать до 2 ГБ частного адресного пространства, если вы не играли с такими параметрами BCDEDIT, как 3 ГБ.

Если бы все 10 использовали все 2 ГБ, вы были бы в аду подкачки.

Ваш вопрос в более общем плане касается того, как процессы могут выделять память в Windows - я брошу вам некоторую терминологию для дальнейшего исследования.

Частные байты - это объем памяти, уникально загруженный для процесса. Виртуальные байты - это общий объем памяти, выделенный процессом. Рабочий набор - это то, сколько оперативной памяти фактически используется процессом.

Зарезервированная память - память, предназначенная для использования приложением, но на самом деле еще не имеющая поддержки ОЗУ / файла подкачки. Выделенная память - память с резервной копией.

Теперь вопрос становится более сложным, когда вы добавляете фреймворки приложений, такие как .Net, в - .Net имеет рабочий максимум менее 2 ГБ, прежде чем произойдет OutOfMemoryExceptions. И, как правило, по моему опыту, этого не произойдет в приложении, которое либо не пропускает что-либо, либо находится под большей нагрузкой, чем оно может справиться.

Perfmon со счетчиками процессов - это обычно все, что вы можете делать с пулами приложений; вы можете включить опцию добавления PID в имя процесса, если это помогает, и APPCMD LIST WP регулярно, чтобы записывать, какой пул приложений что делает.