jvm调优流程
2020-11-04 14:36:13 0 举报
jvm调优流程
作者其他创作
大纲/内容
Jmap -histo<pid>使用jmap打印堆中的对象数,发现可以对象
检查inita-mac和remac阶段暂停时间是否在预期范围
排查原因
并行处理-XX:ParallelRefProcEnabled
是
结束
fail关键字
排查可能内存泄露
Concurrent ModeFailure
调用了System.GC
关闭显示GC调用-XX:DisableExplicitGC
ClassUnloading耗时长
是否有长生命周期的集合类
多
否
使用java mission control 监控应用,对堆进行快照对比,检查增量对象
1、减小整个堆2、减小触发Old区GC时,使用比例
不好定位问题
检查N次old区GC后的剩余堆大小是否是线性增长
YoungGC暂停时间是否在合理范围内
Perm区满了
是否有泛化对象
PromotionFailed
是否是Ref Proc耗时太长
扩大Perm区,并去掉ClassUnloading-XX:CMSClassUnloadingEnabled
此问题无解1、考虑定期重启应用2、使用G1
检查忙时YoungGC频率是否合理
堆太大
1、增加整个堆大小2、缩小Young区,增加Old大小3、缩小触发Old区gc时的堆占用率比例
检查池中对象是否持续增长
增加堆大小,推迟出现时间,是否接受
1、扩大Young区大小2、扩大整个堆大小3、应用符合太大,考虑分拆
检查缓存中对象是否持续增长
1、缩小Young区大小2、缩小整个堆大小
排查时间长的原因
拿到CMS的GC Log
开始
是否有FullGC
1、调大Perm区域2、设置初始大小和最大值相同避免动态缩放
是否有缓存对象
检查集合中对象是否持续增长
少
0 条评论
下一页