一次FullGC问题的定位

在检查服务器GC状况时,发现Full GC(FGC)次数异常高,远超Young GC(YGCG)。即使在线上和测试环境中,这种现象也持续存在。通过分析,发现FGC并非由内存泄露引起,而是由System.gc()触发。进一步排查确认,尽管应用层未直接调用System.gc(),但可能是第三方库或RMI操作导致。经过观察,FGC的频率与服务器运行时间吻合,每小时发生一次,推测问题根源在于RMI的配置或使用。通过本地调试,确认了System.gc()调用栈,从而证实了RMI与FGC频繁之间的关联。
摘要由CSDN通过智能技术生成

问题背景

一次在查看服务器的gc状态的时候发现,fgc的次数过高(200多次)且远大于ygc(3次),在线上环境和测试环境都有同样的现象,长时间的观察发现ygc的次数基本不变,fgc隔段时间后就会增加一次(ygc的平均时间:27ms, fgc的平均时间:58.28ms, 因为内存几乎没什么数据,fgc的时间不是很特别长)
在这里插入图片描述

问题分析

查看服务器启动期间在线人数和内存使用情况,可以看到在线人数很少,且内存的占用很低,排除内存泄露导致的JVM内存占用过高而触发fgc的原因
在这里插入图片描述
通过jstat -gccause 查看gc的lgcc参数值可以看到上一次gc是System.gc触发导致的,而ygc没变化过,所以是system.gc导致了fgc
在这里插入图片描述
项目应用层确认没有调用System.gc, 参考以下资料,考虑是第三方库的调用,网上搜索找到一些线索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值