Java JVM内存转储
我们让Tomcat7和Java7运行我们的应用程序 最近几天我们收到了很多Java JVM内存转储,java,tomcat,dump,Java,Tomcat,Dump,我们让Tomcat7和Java7运行我们的应用程序 最近几天我们收到了很多java.lang.OutOfMemoryError:PermGen space错误 因此,我在JAVA\u OPTS中添加了/usr/share/tomcat7/conf/tomcat7.conf: # Use JAVA_OPTS to set java.library.path for libtcnative.so JAVA_OPTS="[...] -XX:ErrorFile=/var/log/jvm_crash.lo
java.lang.OutOfMemoryError:PermGen space
错误
因此,我在JAVA\u OPTS
中添加了/usr/share/tomcat7/conf/tomcat7.conf
:
# 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\u crash.log
是空的,并且任何地方都没有*.hprof
文件(不仅在/home/ec2 user/dumps
中,我希望它们在那里)
我错过了什么?只是一个解决内存泄漏问题的建议,您可以使用。它应该位于JDK_HOME/bin/jvisualvm.exe 使用此工具,您可以跟踪哪些
对象
具有最多的实例,以及那些即使不再使用仍存在于内存中的对象
这将有助于您入门。我建议您首先检查为tomcat分配的内存,其中包含PermGen大小和内存。你可以增加。还要检查java堆空间。