IIS6可用于x64操作系统(32Gb Ram)上带有Web Garden的32位应用程序的内存

IIS6可用于x64操作系统(32Gb Ram)上带有Web Garden的32位应用程序的内存,iis,iis-6,64-bit,32-bit,web-garden,Iis,Iis 6,64 Bit,32 Bit,Web Garden,我们的IIS6运行在64位Windows2003服务器上,物理内存为32Gb。 由于.NET 3.5 ASP.NET应用程序中存在一些较旧的32位依赖项,我们目前被迫以32位wow64模式运行IIS工作进程,据我所知,该模式允许我们访问工作进程的4Gb内存 我的问题是,如果我们使用WebGarden设置并配置4个工作进程,那么每个工作进程能否访问4Gb内存,从而使我们能够访问大约16Gb的内存。或者我们是否被ASP.NET应用程序的4Gb限制所束缚?是的,4Gb限制是每个进程的限制。在64位内核

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


我的问题是,如果我们使用WebGarden设置并配置4个工作进程,那么每个工作进程能否访问4Gb内存,从而使我们能够访问大约16Gb的内存。或者我们是否被ASP.NET应用程序的4Gb限制所束缚?

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

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

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

您问题的第二部分“从而使我们能够访问大约16Gb的内存”取决于您所说的“访问”是什么意思。Web gardens的工作方式是为传入请求启动另一个w3wp.exe,直到达到为应用程序池设置的工作进程数。由于每个web garden实例都在其自己的进程中,这就好像它是一个不同的应用程序池,因此它们不共享相同的地址空间。因此,当您的应用程序消耗更多内存时,这只是因为您正在运行同一应用程序的多个实例,每个实例都受到32位限制。

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

您问题的第二部分“从而使我们能够访问大约16Gb的内存”取决于您所说的“访问”是什么意思。Web gardens的工作方式是为传入请求启动另一个w3wp.exe,直到达到为应用程序池设置的工作进程数。由于每个web garden实例都在其自己的进程中,这就好像它是一个不同的应用程序池,因此它们不共享相同的地址空间。因此,当您的应用程序消耗更多内存时,这只是因为您正在运行同一应用程序的多个实例,每个实例都受到32位限制。

我们正在管理进程外的会话,因此访问4x4Gb内存将大大帮助我们,并且可能不需要任何应用程序架构更改。ThanksWe正在管理进程外的会话,因此访问4x4Gb内存将极大地帮助我们,并且可能不需要任何应用程序架构更改。谢谢