我有一个在
Windows 2003 SP2 x86上运行的IIS 6服务器.该服务器具有4GB的RAM并且一致运行,分配了2GB.
我意识到使用x86,服务器将不会使用所有4GB RAM,应用程序空间也有限,但IIS进程似乎在其他地方有限. w3wp.exe永远不会超过500MB分配,我偶尔会从繁忙的.NET应用程序中获取OutOfMemory异常(有几个应用程序正在运行,每个应用程序都有一个单独的应用程序池).
IIS6网站/应用程序池可以使用的最大内存是多少?
Windows x86下的应用程序限制为2gb / ea.您可以通过将/ 3gb标志添加到boot.ini来更改此设置,但这可能会导致意外的应用程序行为,因此应谨慎使用. MS官方不支持此(
http://technet.microsoft.com/en-us/library/bb124810.aspx)
可以在相关应用程序池的“回收”选项卡下设置IIS的内存限制.
您如何确定应用程序永远不会超过500MB?如果您正在使用任务管理器,请记住,很少(如果有的话)准确表示内存使用情况,因为Windows了解它.使用Process Explorer:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
还有许多其他相关问题:
>您的事件日志中是否记录了错误?
>这是抛出异常的特定代码行吗?如果是这样,这个OutOfMemory异常实际上是IIS问题还是代码问题?
>您是否使用Recyling设置限制应用程序池?
>这台机器上还有其他服务吗?
最有可能的是,即使Windows任务管理器没有显示,IIS,ASP.NET及其所有相关行李都在运行2GB限制.设置回收限制或升级到x64可能会产生巨大的差异.