我们运行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
,我希望它们在那里)。
我在这里想念的是什么?
答案 0 :(得分:0)
只是建议解决内存泄漏问题,您可以使用Java VisualVM。它应该位于JDK_HOME/bin/jvisualvm.exe
。
使用此工具,您可以做的一件事是跟踪Object
具有最多实例的内容以及内存中仍然存在的对象,即使不再使用它们。
此video应该可以帮助您开始使用。