IIS中ASP.net应用程序的单独应用程序池

spa*_*zel 29 asp.net iis iis-7 web-applications

我已经阅读了建议,我们应该为Win2008服务器上的每个asp.net应用程序创建单独的应用程序池.

我们有大约20个应用程序将在同一台服务器上.我知道这将创建20个独立的工作流程,这似乎非常浪费.

为每个应用程序创建单独的应用程序池是一种好习惯吗?

Por*_*man 33

从ServerFault转发," 为什么在IIS中添加其他应用程序池? "

  • AppPools可以作为不同的身份运行,因此您可以通过这种方式限制权限.
  • 您可以为每个应用程序池分配不同的标识,以便在运行任务管理器时,您知道哪个是w3wp.exe.
  • 您可以回收/重新启动一个应用程序池,而不会影响在不同应用程序池中运行的站点.
  • 如果您的网站存在内存泄漏或通常行为不当,您可以将其放在应用程序池中,这样就不会影响其他网站
  • 如果您的网站非常占用CPU(例如调整照片大小),您可以将其放在自己的应用程序池中并限制其CPU利用率
  • 如果您有多个网站,每个网站都有自己的SQL数据库,则可以使用Active Directory身份验证,而不是在web.config中存储用户名/密码.


cod*_*oke 6

在有理由的情况下,在池中分离应用程序是一件好事,上面列出了很多很好的理由.但是,有充分的理由不将应用程序分成不同的池.

使用相同访问权限,.NET版本等的应用程序将在单个池中更有效地运行,并且更易于维护.最令人讨厌的是,IIS会杀死空闲的应用程序池,需要在每次使用时重新创建池.如果您隔离不常用的应用程序,则会给用户带来不必要的启动成本.将这些应用程序组合到一个池中,可以让用户在不支付启动成本时获得更快乐的用户,在不为多个进程提供内存的情况下使用更快的服务器,为他们提供CPU切片,以及在需要管理更少应用程序时更快乐的管理员池.


Myk*_*ack 6

我曾经在同一个IIS7.5服务器上使用58个.Net网站和17个旧的经典ASP网站,每个站点使用单独的应用程序池.我注意到IIS压缩开始间歇性地失败,导致样式表在大约5%的时间内被破坏.查看服务器上的任务管理器,我可以看到服务器接近它的4GB内存限制 - 每个w3wp.exe进程占用的内存高达100 MB,具体取决于站点的流量.然后,我感动了所有网站逼到2应用程序池(一个用于.NET 4个网站,一个是老传统的ASP网站),做只是2.8GB下,从3.8GB下降后使用的总内存 - 救我了1GB内存服务器上的空间.变化(和离开一两个小时要回流量的正常水平运行的服务器)后,W3WP过程中使用的所有.NET网站网站300MB和20MB的经典ASP网站当中.我可以再次重新启用IIS压缩没有问题.

对于上面其他帖子提到的许多原因,使用单独的APP池是一个好主意,但是根据我的经验,如果您在同一台服务器上托管相当数量的网站,则会导致更高的内存开销.

我想这是硬件限制和安全性之间的权衡,是否要使用单独的应用程序池.如果你有足够的资源,这是一个好主意.