我在一夜之间运行我的Java应用程序时遇到了一些java.lang.OutOfMemoryError: GC overhead limit exceeded
错误:
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
flag添加到我的VM args:
G1GC
而不是......我目前正在使用哪种GC?答案 0 :(得分:4)
在我看来,您在32位JVM上运行VisualVM,并且您的JBoss在64位JVM上运行。在这种情况下,分析器和其他东西(如线程和CPU监视)在开箱即用的Windows上不起作用。使用分析器,您将遇到错误#273,错误地启用了分析器。您应该执行以下操作: