Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java G1收集器未执行完全GC_Java_Garbage Collection_Ehcache_G1gc - Fatal编程技术网

Java G1收集器未执行完全GC

Java G1收集器未执行完全GC,java,garbage-collection,ehcache,g1gc,Java,Garbage Collection,Ehcache,G1gc,在切换到java 1.7.0_80后的一周内,观察到这种行为 S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 0 32M 0 32M 512M 128M 9.5G 7.7G 640M 475M 26487 157min 0 0min 157min 没有完整的GC,分配给老一代的空间很大,年轻一代的集合太多 在通过JMX调用完整GC之后 S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FG

在切换到java 1.7.0_80后的一周内,观察到这种行为

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
0 32M 0 32M 512M 128M 9.5G 7.7G 640M 475M 26487 157min 0 0min 157min

没有完整的GC,分配给老一代的空间很大,年轻一代的集合太多

在通过JMX调用完整GC之后

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
0 32M 0 32M 5.2G 768M 4.8G 2.7G 640M 475M 26592 158.4分钟1 0.1分钟158分钟

GC次数大大减少

参数为

-Xms10g
-Xmx10g
-XX:PermSize=640m
-XX:MaxPermSize=640m
-XX:SurvivorRatio=30
-XX:MaxTenuringThreshold=15
-XX:+UseG1GC
-XX:MaxGCPauseMillis=100
-XX:InitiatingHeapOccupancyPercent=80
-XX:G1HeapRegionSize=32m
-XX:ParallelGCThreads=16
可能是因为-XX:MaxGCPauseMillis=100


旧一代中的许多对象保存在ehcache中,时间间隔为10分钟,但如果到期后未请求相同的对象或缓存未满,ehcache不会清理对象。

-Xmx10g-XX:InitiatingHeapOccupencyPercent=80

我的高级算术技能告诉我10GB的80%是8GB

OU 7.7G

不到8


因此,不会启动并行循环。设置较低的IHOP或不显式设置,以便G1可以在运行时自动调整。

感谢您的解释。我们误解了它的意思。