关于GC频次和堆内存大小设定 财富值72

2016-10-18 17:06发布

如上图, 现在这个应用平均3分钟左右就GC一次,感觉太频繁了。
现在堆内存分配的是4GB,我看平均值始终没有2GB。内存是不是设置太大了?

各位,有没有好的调优的资料分享一下,先行谢过。

附上现用的启动参数:

JAVA_OPTS="-server  -Xms4096m  -Xmx4096m  -Xmn1536m  -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=/services/logs/xxxx/oom.hprof -XX:+UseParNewGC -XX:+UseConcMarkSweepGC  -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+ExplicitGCInvokesConcurrent  -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:+CMSParallelRemarkEnabled -XX:AutoBoxCacheMax=20000  -Dwork.dir=${WORK_DIR}  -Dcom.sun.management.jmxremote.port=8550  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false  -Dlogger.file=${LOG_CONF} -Dfile.encoding=UTF-8 -Duser.timezone=UTC"

java version : 1.7.0_101

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答

那要看你这个是什么程序了,一般地,2倍于平均占用是比较合理的做法。
至于gc的频率,要看此程序申请内存的频率了。
具体要视这个程序自身的情况而定,不能一概而论。

一周热门 更多>