用于32位应用程序的IIS6可用内存,适用于x64 OS上的Web Garden(32Gb Ram)

时间:2008-12-14 09:43:58

标签: iis iis-6 64-bit 32-bit web-garden

我们在具有32Gb物理RAM的64位Windows 2003服务器上运行IIS6。 由于我们的.NET 3.5 ASP.NET应用程序中存在一些较旧的32位依赖项,我们目前被迫以32位wow64模式运行我们的IIS工作进程,据我所知,我们可以为工作进程访问4Gb内存。 / p>

我的问题是,如果我们使用Web Garden设置并配置4个工作进程,每个工作进程可以访问每个4Gb内存,从而使我们可以访问大约16Gb的内存。或者我们是否坚持使用ASP.NET应用程序的4Gb限制?

2 个答案:

答案 0 :(得分:1)

是的,每个进程限制为4GB。在64位内核上运行的每个32位进程都有4GB的专用地址空间限制(顺便说一下,不像32位系统那样与内核共享)。您可以访问4x4GB = 16GB的内存,但是,这个16GB不能同时用于单个进程。每个只能直接访问自己的4GB私有内存。您应该使用一些进程间通信介质来访问其他进程的内存。

答案 1 :(得分:0)

上面回答了“每个工作进程访问内存4Gb”的答案 - 默认情况下,除非你使用/ 3GB开关,否则你将在用户模式下拥有2GB的RAM,你可能会也可能无法使用根据您的应用/服务器设置的要求。你可以结束饥饿的内核模式资源。

你的问题的第二部分“因此让我们可以访问大约16Gb的内存”取决于你对“访问”的意思。 Web园通过启动另一个w3wp.exe来处理传入请求,直到您达到为应用程序池设置的工作进程数。由于每个Web园区实例都在其自己的进程中,因此它就好像它是一个不同的应用程序池,因此它们不共享相同的地址空间。因此,虽然您的应用程序消耗更多内存,但这只是因为您运行的是同一应用程序的多个实例,每个实例都受限于32位限制。 http://bytes.com/groups/asp/54826-asp-sessions-web-gardens http://msdn.microsoft.com/en-us/library/ms791558.aspx