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

Nai*_*Nai 31 iis web-server

在 IIS 中为应用程序池提供多个工作进程有什么缺点吗?它们似乎很容易启用,并且(几乎)我读过的所有内容似乎都表明它们很好……那么为什么 IIS 不为每个应用程序池提供 10 个以上的工作进程?肯定有什么不好的影响吧?

Dja*_*rdt 38

你怀疑是对的。没有缺点的网络花园是一个巨大的神话,它们会给您带来无穷无尽的问题,但许多人仍然不知道何时应该使用它们。

根据 Chris Adams(来自 IIS 团队)的说法,您想要使用 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

  • 在大多数情况下不考虑网络花园一切都很好..但是会话问题?我的意思是只有当您设置为 InProc 时。现在您不会在生产中使用 InProc,对吧?! (7认同)
  • 说得好,克里斯的帖子也是如此。几乎从不需要网络花园。在 99.5% 的时间里,每台服务器只需要一个进程。我有机会在性能不佳的高负载服务器上测试网络花园,我们最终从未启用它们。我们总能找到更好的解决方案。它们仅适用于低资源长时间运行的任务。使用它们有更大的内存占用和会话连续性问题。虽然这可以解决,但很少需要。 (5认同)
  • 尽管这当然是最好的答案,但现在我能找到的关于何时使用网络花园的唯一信息是这个答案中的确切引用(即,“......应用程序,不受 CPU 限制...... ”)。我的问题是我不知道其中一些术语的含义。也许这意味着我不应该玩它,但我是系统管理员,而不是开发人员,有时开发人员也不知道这些事情。因此,对引用 * 含义 * 的更完整解释会很好。 (2认同)