1

我只是想知道为什么重新启动 IIS 7 应用程序池考虑一个好习惯?我知道它会清理线程或会话状态等孤立资源,但其他 Web 服务器如何处理此类问题?java开发人员/管理员是否必须经常重启weblogic/websphere/apache/tomcat才能清理内存中的垃圾?

4

2 回答 2

3

通常它用于补偿糟糕的编程。有时是您的,有时是第三方的,具体取决于您使用的库。

而且,与所有建议一样,最好先查看您的特定环境,看看是否真的有必要再做。

从分析应用程序开始。一个简单的方法是让它在负载下运行一段时间。寻找诸如内存利用率稳定下来还是持续增长之类的东西?

如果它继续增长,您将需要将 IIS 设置为每隔一段时间回收并修复您的应用程序。如果它长到一定程度然后稳定下来,那么你应该没问题。确保您甚至测试应用程序的边缘情况。

于 2010-01-11T16:17:18.020 回答
0

使用 IIS,可能会有表现不佳的非托管代码(最好的例子是 COM 对象)。因此,您可以将 IIS 设置为定期回收进程,以允许此类代码可能发生的内存泄漏。

不过,没有必要这样做。如果您不想重新启动进程,则可以消除重新启动阈值。

如果这个想法在其他服务器中不存在,那么可能是因为其他服务器只允许托管代码。

于 2010-01-11T16:20:19.430 回答