在过去的两周里,我们每晚的IISReset都没有成功恢复,导致我们停机。
我们有一个每天晚上运行IISReset的Windows任务,我想知道这是否甚至是必要的了?
我应该看看应用程序池中的function重新启动自己吗?
我不认为这是一个好的做法。 当大多数人通常设置“夜晚重新设置”或“每晚重新启动”的时候,一般是因为他们运行的应用程序写得不好,泄漏了资源,导致整个系统变得不稳定,除非我们重新启动应用程序,服务甚至整个系统。 事情是,那些人正在忽略实际的问题。 (或者无法修复。)
修复应用程序稳定,不泄漏资源,然后iisresets或系统重新启动将不再需要或有帮助。 不幸的是,这是非常stream行的IISnetworking应用程序,到IIS本身的devise围绕这个想法,它运行的应用程序将写得不好,漏水。 否则就不需要定期回收应用程序池等。
所以要回顾一下 – 如果每晚iisresets是你的策略的一部分,这是因为你有一个写得不好的web应用程序,理想的事情是修复你的应用程序。 (是的,回收应用程序池比iisreset更好,因为您可以回收应用程序池而不会影响服务器上的所有其他网站。)
编辑:这里有一个非常整洁的博客文章,基本上是说我做了同样的事情,但他也声称他总是完全禁用应用程序池回收,而是坚持要他的团队修复每一个最后的内存泄漏,哪个IMO是一个非常英勇的和值得称赞的努力:
http://thatextramile.be/blog/2010/06/why-do-we-recycle-our-application-pools/
是的,完全过时了,实际上这是从来没有要求或好的做法。 如果你必须这样做,你的应用程序出现了问题。
回收应用程序池是一个非常便宜的操作,因为它只closures一个进程并启动另一个进程。 Iisreset使用其所有组件重新启动整个IIS。
AppPool回收还可以根据各种指标为您提供更多关于何时重新启动池的详细信息。
我想就此提供一个替代的观点。 虽然我同意你不应该这样做,因为你正在试图解决资源泄漏等问题,我们在办公时间随机摧毁机器。 这个想法是,我们确保我们的自动灾难恢复计划的工作,如果它不是在我们的大部分工作人员在白天失败。我们总是有一些服务器不受这个影响,以确保我们保持最小的服务,但我们是安全的知识,如果我们必须重新启动服务器,我们觉得这样做是安全的。 如果你不经常做一个,而且突然之间你必须重新启动系统,因为谁知道将会发生什么,这是一个非常紧张和紧张的时刻。