我只是想知道为什么重新启动IIS 7应用程序池考虑一个很好的做法? 我知道它会清理线程或会话状态等孤儿资源,但其他Web服务器如何处理这类问题呢? java开发者/pipe理员必须经常重新启动weblogic / websphere / apache / tomcat来清理内存中的垃圾吗?
使用PowerShell创buildAppPool不会设置AppPool身份
试图授予IIS 7.5中特定的应用程序池标识的权限 – “无法find对象”
应用程序池的.NET版本可以自行更改吗?
通常用于弥补糟糕的编程。 有时你的,有时第三方取决于你正在使用的库。
而且,正如所有的建议一样,最好先看看你的具体环境,看看在做之前是否真的有必要。
开始分析应用程序。 一个简单的方法就是让它在负载下运行一段时间。 寻找内存利用率下降还是持续增长?
如果它不断增长,则需要将IIS设置为经常回收并修复您的应用程序。 如果它长到一个点然后安定下来,那么你应该就好了。 确保你测试你的应用程序的边缘情况。
在IIS中,可能会有非托管代码 – 最好的例子是一个COM对象 – 表现不好。 因此,您可以将您的IIS设置为定期回收进程,以允许此类代码可能发生的内存泄漏。
虽然没有必要这样做。 如果您不想重新启动进程,则可以消除重新启动阈值。
如果这个想法在其他服务器中不存在,那么可能是因为其他服务器只允许托管代码。