“就绪” IIS 工作进程的最小数量

“就绪” IIS 工作进程的最小数量

根据我使用 IIS 的经验,当工作进程被回收时,下一个“激活”新进程的请求必须等待该进程执行其一次性启动。当程序正在执行相当大的应用程序启动时,这种等待可能特别糟糕。

有没有办法通过 IIS 保持最少数量的工作进程处于“就绪”状态,以便它们立即处理请求?我仍然希望工作进程被回收,但它们在处于“就绪”状态之前不处理请求,这样用户就不会感觉到启动成本。

答案1

在 7.5 (Windows Server 2008 R2) 中,您可以使用启动模式属性,即使没有请求进来,应用程序池也可以启动。默认情况下,它们仍然是按需启动的(至少,文档中是这么说的),但是将此属性添加到应用程序池应该允许它愉快地运行,即使在空闲时。

http://msdn.microsoft.com/en-us/library/ms689467(v=VS.90).aspx

不过,我同意 rfair01 的观点,可能一开始就不要让它们回收是一个更好的主意;尽管这并不总是可行的。

答案2

您可以做几件不同的事情:

1) 更改应用程序池,使其不会自动回收。这将使您的应用程序始终处于就绪状态,除非重新启动 IIS。如果您处于共享托管环境中,这可能不切实际。如果您的应用程序存在内存问题,这可能也不是一个好方法。

2) 使用计划预热脚本。如果应用程序池按计划回收,您可以创建一个脚本,该脚本将访问您网站上的页面以预热应用程序池。示例这里。这样您的应用程序就可以快速响应请求了。

相关内容