问题
We have IIS6 running on a 64-bit Windows 2003 server with 32Gb physical RAM. Due to some older 32-bit dependencies within our .NET 3.5 ASP.NET application, we are currently forced to run our IIS worker process in 32-Bit wow64 mode which I understand gives us access to 4Gb of memory for our worker process.
My question is if we use the Web Garden setting and configure say 4 worker processes, can each worker process access 4Gb of memory each, thus giving us access to approx 16Gb of memory. Or are we stuck with the limit of 4Gb for out ASP.NET app?
回答1:
Yes, 4GB limit is per process. Each 32 bit process running on a 64 bit kernel has 4GB private address space limit (which is, by the way, not shared with the kernel as in a 32 bit system). You can access 4x4GB=16GB of memory, however, this 16GB is not available to a single process at once. Each can only directly access its own 4GB private memory. You should use some interprocess communication medium to access memory from other processes.
回答2:
The answer to "each worker process access 4Gb of memory each" was answered above - by default you will have 2GB of RAM in user mode unless you use the /3GB switch, which you may or may not be able to use depending on the requirements of your app/server setup. You can wind up starving kernel mode resources.
Part two of your question "thus giving us access to approx 16Gb of memory" depends on what you mean by "access". Web gardens work by spinning up another w3wp.exe for incoming requests till you've reached the number of worker processes setup for the app pool. Since each web garden instance is in its own process, it's as if it were a different app pool and as result they don't share the same address space. So, while your application is consuming more memory, it is only because you are running multiple instances of the same application, each constrained to 32bit limitations. http://bytes.com/groups/asp/54826-asp-sessions-web-gardens http://msdn.microsoft.com/en-us/library/ms791558.aspx
来源:https://stackoverflow.com/questions/366349/iis6-available-memory-for-32-bit-application-with-web-garden-on-x64-os-32gb-ram