jvm参数配置
2020-09-16 10:39:08 0 举报
jvm参数配置
作者其他创作
大纲/内容
是
排查可能是内存泄漏
检查Young GC频率是否合理?
扩大Perm区,并去掉ClassUnloading(空间换时间)-XX:+CMSClassUnloadingEnabled
否
1.调大Perm区2.设置初始大小和最大相同,避免动态调整
使用JProfile或 Java Mission Control监控应用,对堆进行快照对比,检查增量对象
并行处理-XX:+ParallelRefProcEnabled
排查原因
jmap -histo:live <pid>(使用jmap打印堆中对象数,发现可疑对象)
不好定位
拿到CMS的GC Log
是否有缓存对象?
检查initial-mark和 阶段暂停时间是否在预期范围
1.减少整个堆2.减少触发old区gc时的使用比例
Promotion Failed
1.增加整个堆大小2.减少young区,增加lod大小3.减少触发old去gc的占用比例
调用了System.gc
Perm区满了
1.扩大Young区大小2.扩大整个堆大小3.应用负荷太大,考虑分
是否有池化对象?
检查缓存中象是否持续增长
排查耗时长的原因
检查集合对象是否持续增长
1.缩小Young去大小2.缩小整个堆大小
jdk version1.8
禁用显示GC-XX:+DisableExplictGC
是否是Ref Proc耗时太长?
检查池中是否持续增长
是否有Full GC
是否是ClassUnloading耗时太长?
堆太大
Done
是否有长生命周期的集合类?
是否有fail关键字
增加堆大小,推迟出现时间,能否接受?
Young GC暂停时间是否在合理范围
此问题无解1.考虑定期重启应用2.使用G1
Concurrent mode Failure
检查N次old区GC后的剩余堆大小是否呈规律性增长?
0 条评论
下一页