我在java.lang.OutOfMemoryError: GC overhead limit exceeded
一夜之间运行我的 Java 应用程序时遇到了一些错误:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid6376.hprof ...
Heap dump file created [512149941 bytes in 23.586 secs]
23:34:52,163 WARN [HDScanner] Scan failed
java.lang.OutOfMemoryError: Java heap space
23:34:52,298 ERROR [ContainerBase] Exception invoking periodic operation:
java.lang.OutOfMemoryError: Java heap space
23:34:52,321 ERROR [JIoEndpoint] Socket accept failed
java.lang.OutOfMemoryError: Java heap space
at java.net.ServerSocket.accept(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
如果我打开 jvisualvm,我可以看到我确实没有堆空间:
我想对其进行分析以试图弄清楚发生了什么 -是否存在内存泄漏?等等。但是,我根本无法让 jvisualvm 分析器做任何事情。该Profiler
选项卡显示有关启用类共享的警告:
...即使我已将-Xshare:off
标志添加到我的 VM 参数中:
所以,
- 关于如何让分析工作的任何想法?
- 是否值得玩
G1GC
而不是......我目前使用的任何GC?