我在一个应用程序池上运行了大约 360 个站点。现在我知道我们在其中一个网站上遇到了编码问题,我们是否不小心编码了内存泄漏。所以发生的事情是站点运行,内存泄漏开始,很快应用程序池就会耗尽内存。然后缓慢但肯定地,其余的 360 个站点开始像多米诺骨牌效应一样下降。我知道问题的根源是一些糟糕的编码,我们会修复它,但我在想,我们可以每月创建一个新的应用程序池,而不是关闭所说的 360 个站点,我们创建的每个站点都会进入那个应用程序池个月的应用程序池。首先,这将问题的范围限制在 5 到 20 个站点,其次,如果一个站点开始出现问题,我们不会关闭所有 360 站点。
这种想法是否有任何问题,可能的后果?提前致谢!耶利米
应用程序池的目的是限制单个应用程序占用您盒子上所有视线的风险,因此绝对推荐这样做。
您问题的“每月添加一个”部分没有多大意义,一旦站点在应用程序池中,它将永远保留在那里,因此这对于您现有的站点不是必需的。您是在谈论未来的增长吗?如果您更新您的问题,我们可以进一步评论该部分。
缺点是每个新的应用程序池都会为服务器增加一些开销(内存/cpu),因此添加 360 个可能不是一个好主意。建议将网站分块(以某种方式相关)组。
一个好的起点是将“有问题的”应用程序放入它们自己的池中,而将正在工作的应用程序留在另一个池中——这将有助于稳定大多数站点的情况。
如果您不在单个 appPool 中运行所有应用程序会更好。以下是我认为正确的做法:
您在 IIS 中应该拥有的 appPool 数量或每个 appPool 的应用程序数量没有硬性限制。但是,appPools 越少越好。在 Windows 中创建进程是一个昂贵的过程。此外,重要的是要注意同时运行的 appPool 的数量。