IIS6上每个ASP.NET辅助进程可用的最大内存

时间:2013-11-15 13:15:10

标签: asp.net session iis-6

我在Windows 2003 Server 32位上运行IIS6。我已经读过,IIS6的最大虚拟内存限制为2gb(3gb交换机被扯下3gb)。

我不清楚的是,这是否意味着所有ASP.NET会话之间都有2gb或者每个2gb。

因此,如果我有一个存储200kb的会话变量并且有10,000个活动会话,那么我将会遇到这个2gb限制吗?

1 个答案:

答案 0 :(得分:0)

一般来说,建议是不为ASP.NET应用程序保留这些选项,它会影响appPool回收更多信息的速度here摘要如下:

物理和虚拟内存:此部分用于回收占用过多内存的应用程序池。专注于物理我通常喜欢在32位应用程序上限制应用程序池大约800MB到1200 MB,应用程序池很少,具体取决于内存的数量和数量。在具有2 GB RAM的服务器上,我将其设置为最大约800MB。在4GB的RAM服务器上大约1GB,如果更多,最大在1200左右。在64位网络前端有8-16 GB内存我听说过设置2GB RAM甚至允许它骑,而不是限制它。

你真的需要对它进行分析,因为它们可以真正增长到处理和缓存。内存量越大,负载越大,工作进程越高。当人们询问有关配置应用程序池的问题时,通常会询问这些数字应该是什么。你在这里做的是明确限制应用程序池消耗更多的内存。

请注意,此设置位于“回收”选项卡上,这是有原因的。当应用程序池达到最大值时,它不像最大处理器设置。它会循环工作进程,就像一个微小的重启或类似于iisreset,但不是因为有时我们希望这发生,所以我们可以释放我们的记忆。在理想的世界中,你真的不希望每24小时循环超过两次。我听说有些人试图在早上峰值出现之前进行循环,这样他们就拥有了最多的可用内存,然后在备份或爬行开始之前的一天结束时进行循环。

基本上建议不设置限制(保留选项未选中),因为一旦达到限制,IIS将回收应用程序池,导致所有活动用户暂时与站点断开连接。您的用户可能会在应用程序池回收时收到HTTP 500,然后一旦它返回,应用程序池就会出现延迟。

<强>会话

对于任何大小的应用程序,请不要使用InProc(存储在内存中)会话使用状态服务器或SQL服务器来存储会话。 http://msdn.microsoft.com/en-us/library/ms178586.aspx

<强>结论

这实际上取决于应用程序的配置文件,如果您希望10,000个活动会话虽然不使用InProc,请不要使用IIS6并且不要使用32位服务器。