我只是想知道为什么重启IIS 7应用程序池被认为是一种好的做法?我知道它会清理像线程或会话状态这样的孤立资源,但是其他web服务器如何处理这种问题呢?java开发人员/管理员是否必须经常重启weblogic/websphere/apache/tomcat来清理内存中的垃圾?
发布于 2010-01-12 00:17:18
通常,它被用来补偿糟糕的编程。有时是您的,有时是第三方,这取决于您正在使用的库。
而且,与所有建议一样,最好在执行之前查看您的特定环境,看看是否真的有必要这样做。
从分析应用程序开始。一种简单的方法是让它在负载下运行一段时间。看看内存使用率是稳定下来了还是持续增长了?
如果它继续增长,您将需要设置IIS以定期回收,并修复您的应用程序。如果它增长到一个点,然后稳定下来,那么你应该很好。确保您测试的甚至是应用程序的边缘用例。
发布于 2010-01-12 00:20:19
使用IIS时,可能会有非托管代码--最好的例子是COM对象--表现不佳。因此,您可以将IIS设置为定期回收进程,以防止此类代码可能发生的内存泄漏。
不过,这并不是必须的。如果您不希望重新启动进程,则可以消除重新启动阈值。
如果这个想法在其他服务器中不存在,那么可能是因为其他服务器只允许托管代码。
https://stackoverflow.com/questions/2043031
复制相似问题