猿问

关于GC频次和堆内存大小设定

如上图, 现在这个应用平均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


慕神8447489
浏览 1549回答 3
3回答

RISEBY

用jstat -gcutil <pid> 1s 观察YoungGC和FullGC的频率与耗时。适当调整-XX:NewRatio的比例
随时随地看视频慕课网APP

相关分类

Java
我要回答