网络花园……它们是好是坏,还是什么?


28

在IIS中为应用程序池提供多个工作进程是否有任何弊端?它们似乎真的很容易启用,并且(几乎)我读过的所有内容似乎都表明它们是好的。因此,IIS为什么不为每个应用程序池提供10个以上的工作进程?必须有一些有害的影响,对吗?

Answers:


36

你是可疑的是对的。没有缺点的Web Gardens是一个巨大的神话,它们可以给您带来无尽的麻烦,但是许多人甚至都不知道何时应该使用它们。

根据IIS团队的克里斯·亚当斯(Chris Adams)的说法,您只想使用Web Garden就是一个原因:要为应用程序提供不受CPU限制但可以执行长时间运行的请求的能力,可以扩展而不用尽所有资源工作进程中可用的线程。它们可能会变坏的原因很多,但是,人们普遍误认为没有不利之处。

它们增加了系统开销(它们不共享缓存),不共享会话(如果将用户切换到另一个进程,则用户可能会丢失会话),InProc可能会陷入混乱。简而言之,实际上它们经常会带来很多麻烦,并且您不应该在没有充分理由的情况下使用它们。

阅读克里斯的完整解释:http : //blogs.iis.net/chrisad/archive/2006/07/14/1342059.aspx

进一步阅读:http : //weblogs.asp.net/owscott/why-you-shouldn-t-use-web-gardens-in-iis-week-24


5
说得好,克里斯的帖子也是如此。几乎不需要网络花园。在99.5%的时间内,每个服务器只需一个进程。我有机会在性能不佳的高负载服务器上测试网络花园,我们最终从未使它们启用。我们总是找到更好的解决方案。它们仅对低资源耗时的任务起作用。使用它们具有更大的内存占用量和会话连续性问题。尽管可以解决此问题,但几乎不需要。
Scott Forsyth-MVP

令人震惊的是,有多少文本从未提及其缺点-甚至微软自己的网站也有类似的页面。
Django Reinhardt,2009年

7
在大多数情况下,不考虑使用网络花园就可以了。但是会话有问题吗?我的意思是仅当您设置为InProc时。现在您不会在生产中使用InProc,对吗?
2009年

@AndreiRinea令人惊讶的是,几乎没人知道InProc的替代品。–
Gats

1
尽管这肯定是最好的答案,但现在我唯一可以找到有关何时使用网络花园的信息就是该答案中的确切引号(例如,“ ...不受CPU限制的应用程序... ”)。对我来说,问题是我不知道其中一些术语的含义。也许那意味着我不应该玩这个游戏,但是我是系统管理员,而不是开发人员,有时开发人员也不知道这些事情。因此,对该报价的含义进行更完整的解释确实很好。
Todd Wilcox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.