JVM内存转储

时间:2015-06-25 14:25:49

标签: java tomcat dump

我们运行Tomcat 7和Java 7。

最后几天我们遇到了很多java.lang.OutOfMemoryError: PermGen space错误。

所以我添加到/usr/share/tomcat7/conf/tomcat7.conf中的JAVA_OPTS

# Use JAVA_OPTS to set java.library.path for libtcnative.so
JAVA_OPTS="[...] -XX:ErrorFile=/var/log/jvm_crash.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/ec2-user/dumps"

但是/var/log/jvm_crash.log是空的,并且在任何地方都没有*.hprof个文件(不仅仅是/home/ec2-user/dumps,我希望它们在那里)。

我在这里想念的是什么?

1 个答案:

答案 0 :(得分:0)

只是建议解决内存泄漏问题,您可以使用Java VisualVM。它应该位于JDK_HOME/bin/jvisualvm.exe

使用此工具,您可以做的一件事是跟踪Object具有最多实例的内容以及内存中仍然存在的对象,即使不再使用它们。

video应该可以帮助您开始使用。