超大数据引发的频繁gc问题

本文探讨了因超大数据引发的频繁GC问题,通过分析gc.log、获取堆内存快照以及使用Visual VM,定位到大对象的来源,发现是Dubbo接口返回大数据并在日志打印中放大,导致内存压力和频繁GC。解决方案在于优化数据处理和日志策略。
摘要由CSDN通过智能技术生成

超大数据引发的频繁gc问题
image-20210523220108130

上述监控:ps_scavenge 表示的是年轻代垃圾收集次数 ,PS_MARK_SWEEP 是 full_gc 次数

1、首先看gc.log

image-20210523220250315
根据gc log,在上一次fullgc后,在一开始,young gc的频次还算相对正常。
但后续,开始出现毫秒级的gc频次。而且每次gc后,总堆的大小逐渐变大,说明发生了新生代晋升到老年代,而且紧跟着出现了full gc ,full gc 回收了近一半的内存。由此推测,应该是有短暂生命周期的大对象频繁被创建。因此,需要查下,这些大对象具体是什么。

2、获取堆内存储快照

(1)通过对gc日志的实时观察,发现频繁gc的现象是不规律的,也就是无法推断出下一次这种现象发生的时间。而且,多次young gc后,紧跟的fullgc相当快,大对象都被gc掉了,导致无法推断应该在何时dump堆内快照。
为解决该问题,通过 jstat -gutil 命令来实时观察堆内存的占用情况,看能否通过这个工具来分析出什么线索。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值