如何优化 G1 的暂停时间
How to Optimize G1's Pause Time
我的 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 GC 的日志之一是:
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 的 Full GC Stop The World 吗?如果是这样,停顿时间超过1秒,就是unacceptable.How要优化?
-Xmn2g
与 -XX:MaxGCPauseMillis=300
冲突。
G1
会动态调整新生代大小。
您应该只删除 -Xmn2g
。
我的 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 GC 的日志之一是:
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 的 Full GC Stop The World 吗?如果是这样,停顿时间超过1秒,就是unacceptable.How要优化?
-Xmn2g
与 -XX:MaxGCPauseMillis=300
冲突。
G1
会动态调整新生代大小。
您应该只删除 -Xmn2g
。