如何优化G1的暂停时间

时间:2016-11-29 08:44:42

标签: java garbage-collection g1gc

我的JAVA_OPTS是

-server -Xms4g -Xmx4g -XX:MaxMetaspaceSize=384m -Xmn2g -Xloggc:/home/admin/logs/gc.log 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseG1GC -XX:MaxGCPauseMillis=300

我对Full GC的频率感到满意,两个GC之间的时间跨度是5小时或更长。 Full GCs的日志之一是:

2016-11-29T03:59:18.009+0800: 385603.123: [Full GC (Allocation Failure)  4066M->1197M(4096M), 2.5124454 secs]
   [Eden: 0.0B(2048.0M)->0.0B(2048.0M) Survivors: 0.0B->0.0B Heap: 4066.4M(4096.0M)->1197.1M(4096.0M)], [Metaspace: 168228K->167780K(1206272K)]
[Times: user=3.24 sys=0.00, real=2.52 secs] 

G1的完整GC 停止世界?如果是这样,暂停时间超过1秒,这是不可接受的。如何优化?

1 个答案:

答案 0 :(得分:2)

-Xmn2g-XX:MaxGCPauseMillis=300冲突。

G1将动态调整新一代的尺寸。

您应该删除-Xmn2g