我一直在为我的应用程序池使用OnDemand启动模式,但我最近听说了AlwaysRunning模式,它允许部署到IIS的ASP.NET应用程序在部署后立即可用。似乎启用此功能会导致IIS在部署应用程序时立即启动应用程序,从而消除了网站“冷点击”所需的预热时间。这是在this伟大的文章解释。
下面是我的一些疑问,我想了解一下:
1.使用AlwaysRunning功能,回收应用程序池时会发生什么?使用的内存被删除并释放?工作进程被终止并再次启动,或者它们在内存中继续可用,并且它们使用的内存没有被删除和释放?
- OnDemand和AlwaysRunning的优势和劣势是什么?哪一个更适合单个工作进程,哪一个更适合Web花园(多个工作进程)?
1.另外,有人能解释一下当使用AlwaysRunnig与进程空闲超时和空闲超时操作和回收相结合时,网站的行为吗?OnDemand也是如此。我想清楚的是,在这些场景(AlwaysRunning和OnDemand)下,所有这些部分是如何相互作用的。
1条答案
按热度按时间yc0p9oo01#
1)当你设置应用程序池总是在回收时运行时,它将删除正在运行的工作进程并再次启动它。
2)如定义所述,如果您设置总是运行IIS,则在IIS启动或应用程序池创建时立即启动应用程序池的工作进程。
OnDemand-> IIS将在收到第一个Web应用程序请求时启动工作进程。
总是运行的优点是用户在请求资源之后不需要等待。而OnDemand的缺点是在w3 wp启动时存在延迟。总是运行的缺点是内存是特定工作进程占用的方式。
在我看来,对于一个网络花园环境设置总是运行是一个更好的主意。
3)暂停只是冻结进程,它比破坏进程更有效。默认情况下,IIS会在20分钟不活动后将应用程序池设置为“超时”。因此,如果您的网站在20分钟内没有任何访问者,应用程序池将关闭-释放这些系统资源。然后,下次请求进入网站时,IIS将自动重新启动应用程序池并提供所请求的页面。
如果你想让你的相机总是设置在运行模式下,永远不睡觉,那么下面的设置适合你: