我们有32G的物理内存是64位的Windows 2003服务器上运行IIS6。 由于我们的.NET 3.5 ASP.NET应用程序中的一些旧的32位依赖,我们目前正在被迫在运行32位WOW64模式我们的IIS工作的过程,我的理解让我们访问的4Gb的内存用于我们的工作进程。

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

有帮助吗?

解决方案

是,4GB的限制是每个进程。在64位内核运行的每个32位进程具有4GB私有地址空间限制(这是,顺便说一下,不与内核共享如在32位系统)。您可以访问的内存4x4GB = 16GB,然而,这16GB不可用于单个进程的一次。每次只能直接访问自己的4GB的私有内存。你应该使用一些进程间通信介质从其它进程访问内存。

其他提示

答案上面回答“各自的存储器中的每个工作进程访问的4Gb” - 默认你将有在用户模式RAM 2GB,除非使用/ 3GB开关,这可能会或可能不能够根据使用您的应用/服务器设置的要求。您可以拉闸挨饿内核模式资源。

你的问题的第二部分“从而让我们访问的内存大约16GB的”取决于你的意思是“访问”。 Web园通过,直到你已经达到工人的进程数设置为应用程序池旋转起来另一个w3wp.exe的传入请求工作。由于每个网页花园实例是在自己的进程,就好像它是一个不同的应用程序池和结果,他们不共享相同的地址空间。所以,当你的应用程序消耗更多的内存,那只是因为你正在运行同一应用程序的多个实例,每个实例限制为32位的限制。 http://bytes.com/groups/asp/54826-asp-会议的Web-花园 http://msdn.microsoft.com/en-us/library/ms791558。 ASPX

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top