企业服务器上的IIS 6.0-内存限制
时间:2020-03-06 14:37:47 来源:igfitidea点击:
我们希望将Web服务器从Windows 2003切换到Windows 2003 Enterprise(64位)以使用8GB的RAM。 IIS 6.0和ASPNET 1.1应用程序能否从此更改中受益?
解决方案
我的理解是,ASP.NET 1.1中的虚拟地址空间限制为3 GB,尽管2.0是兼容的,但从未使它与64位兼容。
我们可以使IIS 6.0在64 OS上运行32位(即ASP.NET 1.1),但是它将处于32位模式(以及其他任何托管的东西,包括ASP.NET 2.0站点)。
Microsoft关于在32位和64位之间切换的文章
除非在进程上使用/ 3GB开关,否则内存限制为2GB,这将为进程本身使用1GB的内核空间。使用IIS超越3GB的唯一方法是运行64位版本。
由于ASP.Net 1.1不支持x64,因此只能使用32位工作进程运行IIS 6. / 3GB开关在x64上不执行任何操作,但是x64本身为32位进程提供了4 GB而不是2GB的空间,因此我们将有更多的内存可用于工作进程。
我们需要将AppPools设置为32位:
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
我们可以考虑将ASP.net内存从应用程序的60%调整为80%,我们已经取得了一些成功。
<system.web> <processModel memoryLimit="80" /> </system.web>
当我们进入1.2GB到1.6GB的范围时,这可能会对应用程序池造成压力。
其他要考虑的事情是,大多数ASP.Net 1.1应用程序在2.0应用程序池中运行时都没有问题,使我们可以轻松地将1.1 32位应用程序转换为2.0 64位应用程序。这不需要任何重新编译,只需将应用程序池更改为2.0,然后使用上述ADSUTIL.VBS脚本(设置为0而不是1)切换到x64.