使用G1收集器时,我们遇到了似乎是长时间的“stop the world”暂停的困扰。我已经阅读了Oracle文档,但仍然难以确定是什么导致了这些长时间暂停,以及该如何解决问题。(下面是GC日志)
我们的实例正在受监控,并且我有以下图表中包含的信息:
我们还有另一个监控工具来ping JVM,它报告JVM在大约相同的时间内无响应了12秒。
那么这就引出了关于怎么做的问题。服务器上的负载非常低,所以这种情况并不经常发生,但似乎在几个小时内堆会持续增长,然后会发生巨大的GC事件,可能会导致严重问题。下面是我们用于GC的配置:
wrapper.java.additional.40=-XX:+UseG1GC
wrapper.java.additional.44=-XX:+ScavengeBeforeFullGC
wrapper.java.additional.50=-XX:+PrintGCCause
wrapper.java.additional.51=-XX:+PrintGCDetails
wrapper.java.additional.52=-XX:+PrintGCTimeStamps
wrapper.java.additional.53=-XX:+PrintGCApplicationStoppedTime
wrapper.java.additional.54=-XX:+PrintGCApplicationConcurrentTime
wrapper.java.additional.55=-verbose:gc
wrapper.java.additional.56=-Xloggc:../../../logs/gc.log
wrapper.java.additional.57-XX:+UseGCLogFileRotation
wrapper.java.additional.58-XX:NumberOfGCLogFiles=10
wrapper.java.additional.59-XX:GCLogFileSize=100M
wrapper.java.additional.60=-XX:+PrintHeapAtGC
wrapper.java.additional.61=-XX:+PrintTenuringDistribution
wrapper.java.additional.62=-XX:+UseCompressedClassPointers
wrapper.java.additional.63=-XX:+UseCompressedOops
请问有没有人能给我指点一下方向。谢谢!
GCEasy分析: http://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMTcvMDYvMjcvLS1nYyAoMSkubG9nLnppcC0tMTgtNDEtNDA=
更新: 元空间图表
更新: GC日志: https://dl.dropboxusercontent.com/u/3642047/gc.log.zip