java - 关于GC频次和堆内存大小设定
怪我咯
怪我咯 2017-04-18 10:11:45
[Java讨论组]

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
高洛峰

看你的图应该是YGC,YGC这个频率没关系不算很频繁。

要看资料的话可以看这个:

  1. https://segmentfault.com/a/11...

  2. https://segmentfault.com/a/11...

伊谢尔伦

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

黄舟

用jstat -gcutil <pid> 1s 观察YoungGC和FullGC的频率与耗时。适当调整-XX:NewRatio的比例

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号