Я получаю некоторые 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
вАргументы моей виртуальной машины:
Итак,
- Есть идеи о том, как заставить профилирование работать?
- Стоит ли игратьс
G1GC
вместо ... какой бы GC я сейчас не использовал?