重新部署Web应用程序时,Tomcat 6确实不稳定

时间:2010-06-01 07:52:45

标签: java web-applications tomcat

你知道如何使它更稳定,可能设置属性,分配内存吗?

在重新部署网络应用程序,通过经理(战争),网络界面或maven插件时,它总是挂起。

它每秒都会给PermGenSpace,没有内存错误等。

在我的本地机器上3gb ram。

看起来应该手动设置它以稳定的方式工作。

如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

发生

PermGenSpace错误,因为在取消部署/部署周期期间存在内存泄漏。

取消部署应用程序理论上不应该导致任何内存泄漏,但是已知的问题是,不同类加载器中的对象之间的细微依赖关系可能导致应用程序中的内存泄漏。服务器

短期补救措施是配置JVM内存(-Xms-Xms等),使其在2-3之后不会爆炸重新部署但经过多次重新部署后,您需要不那么频繁地重启Tomcat。

长期补救措施是分析导致内存泄漏的原因。这通常不是Tomcat的问题,既不是垃圾收集,也不是应用程序代码,而是在不同的类加载器中部署各种库。理解这个问题的好文章是:

这是一个SO问题,我建议你看一下,OP有类似的问题:

答案 1 :(得分:4)

您需要增加PermGenSpace,默认情况下可能太小而无法满足您的需求。通过将这种切换提供给JVM来启动Tomcat:

-XX:MaxPermSize=256m

此外,您可能希望使用这种开关增加最大堆大小:

-Xmx1g

您需要稍微测试一下这些设置才能看出哪些确切的值适合您。

可以将这些设置放入tomcat/bin/setenv.sh文件中,例如:

CATALINA_OPTS="-Xmx1g -XX:MaxPermSize=256m"