G1全gc时间多了

时间:2017-04-28 14:16:51

标签: java garbage-collection

我在第八核心和264G memeory linux机器上使用hazelcast。接下来是我的开始脚本。

nohup java -Djava.rmi.server.hostname=172.19.141.2 -server -Xms40G -Xmx40G -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:./logs/gc.log -Xss256k -XX:PermSize=128M -XX:MaxPermSize=512M  -Djava.util.Arrays.useLegacyMergeSort=true -XX:+UseG1GC -XX:G1HeapRegionSize=32 -XX:MaxGCPauseMillis=600 -XX:InitiatingHeapOccupancyPercent=70 -XX:+HeapDumpOnOutOfMemoryError -Dhazelcast.jmx=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=2222 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.ext.dirs=../lib:../lib-business:../lib-other com.hazelcast.core.server.StartServer &

我的问题是完整的gc需要大约12秒,这是不可接受的。我试图设置 -XX:MaxGCPauseMillis = 600 param.But它没用。这是gc日志

2017-04-28T21:38:17.795+0800: 9237.910: [Full GC (Allocation Failure)  27G->7361M(40G), 15.6893722 secs]
[Eden: 1024.0K(2010.0M)->0.0B(2048.0M) Survivors: 38.0M->0.0B Heap: 27.5G(40.0G)->7361.6M(40.0G)], [Metaspace: 17817K->17726K(18432K)]
[Times: user=23.49 sys=0.16, real=15.69 secs] 

希望得到你的帮助。

1 个答案:

答案 0 :(得分:1)

经过一些测试后,我发现它是大对象,这使得gc有很多时间。当我移除大对象时,年轻的gc小于500ms并且没有完整的gc所以长。