Доступная память IIS6 для 32-разрядного приложения с Web Garden на ОС x64 (32 ГБ оперативной памяти)

StackOverflow https://stackoverflow.com/questions/366349

Вопрос

У нас есть IIS6, работающий на 64-разрядном сервере Windows 2003 с 32 ГБ физической оперативной памяти.Из-за некоторых старых 32-разрядных зависимостей в нашем приложении .NET 3.5 ASP.NET в настоящее время мы вынуждены запускать наш рабочий процесс IIS в 32-разрядном режиме wow64, который, как я понимаю, дает нам доступ к 4 ГБ памяти для нашего рабочего процесса.

Мой вопрос в том, что если мы используем настройку Web Garden и настроим, скажем, 4 рабочих процесса, сможет ли каждый рабочий процесс получить доступ к 4 ГБ памяти каждый, что даст нам доступ примерно к 16 ГБ памяти.Или мы застряли с ограничением в 4 ГБ для приложения out ASP.NET?

Это было полезно?

Решение

Да, для каждого процесса предусмотрено ограничение в 4 ГБ.Каждый 32-разрядный процесс, запущенный на 64-разрядном ядре, имеет ограничение в 4 ГБ частного адресного пространства (которое, кстати, не используется совместно с ядром, как в 32-разрядной системе).Вы можете получить доступ к 4x4GB = 16GB памяти, однако эти 16GB недоступны для одного процесса одновременно.Каждый из них может напрямую обращаться только к своим собственным 4 ГБ частной памяти.Вы должны использовать какое-либо средство межпроцессной связи для доступа к памяти из других процессов.

Другие советы

Выше был дан ответ на вопрос "каждый рабочий процесс имеет доступ к 4 ГБ оперативной памяти" - по умолчанию у вас будет 2 ГБ оперативной памяти в пользовательском режиме, если вы не используете переключатель / 3GB, который вы можете использовать, а можете и не использовать в зависимости от требований настройки вашего приложения / сервера.Вы можете привести к истощению ресурсов режима ядра.

Вторая часть вашего вопроса "таким образом, мы получаем доступ примерно к 16 ГБ памяти" зависит от того, что вы подразумеваете под "доступом".Веб-сады работают, подключая другой w3wp.exe для входящих запросов, пока вы не достигнете количества рабочих процессов, настроенных для пула приложений.Поскольку каждый экземпляр web garden находится в своем собственном процессе, это как если бы это был другой пул приложений, и в результате они не используют одно и то же адресное пространство.Таким образом, хотя ваше приложение потребляет больше памяти, это происходит только потому, что вы запускаете несколько экземпляров одного и того же приложения, каждый из которых ограничен 32-битными ограничениями.http://bytes.com/groups/asp/54826-asp-sessions-web-gardens http://msdn.microsoft.com/en-us/library/ms791558.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top