是否有可能以其他方式在tomcat服务器上获取此错误,然后重新部署战争或编辑jsp文件?我们在服务器上遇到了这个错误,理论上我们没有重新部署。你知道从linux控制台监控PermGen的最佳解决方案吗?
答案 0 :(得分:1)
permGen意味着永久生成,这是所有常量存储的地方,如字符串(在大多数情况下,在java 7之前)存储在此permgen上,一种摆脱它的方法是你只需增加内存使用
-XX:PermSize=512m
这就是我所做的,但是从你的场景中感觉有某种内存泄漏,我不知道如何检测它,有可用的框架,netbeans也提供应用程序分析支持。
以下是一些很好的链接 http://www.eclipse.org/tptp/home/documents/tutorials/profilingtool/profilingexample_32.html
http://www.ej-technologies.com/products/jprofiler/overview.html
答案 1 :(得分:0)
不一定是因为重新部署或更多文件编辑。 服务器上的Java应用程序更有可能耗尽所有已分配的内存。 所以是的,有可能以其他方式在tomcat服务器上获取此错误,然后重新部署战争或编辑jsp文件。
在监控方面,您可能对此API感兴趣:http://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryMXBean.html
或者尝试在Google中输入tomcat monitor permgen
来查找监控软件 - 正在返回大量结果。
答案 2 :(得分:0)
有一种远程监控VM的工具:http://visualvm.java.net/
答案 3 :(得分:0)
我记得Tomcat上的默认permgen非常低,如果你有一个体面的大小应用程序,有很多第三方依赖,这可能导致大量的类驻留在pergmen中。你可以合法地需要更多的pergmen空间,尝试增加它。