线上频繁GC怎么处理

1.故障突发

频繁GC会导致接口变慢,系统明显卡顿。首先当然是以最快的速度恢复系统的正常使用,然后组织相关干系人进行快速决策会议,进行事故原因排查,定位问题的根本原因。

2.故障恢复

1.先查看是否是新上线的版本代码导致的?如果是则先回滚到上一版本。

2.如果是旧代码导致的,只不过现在问题才暴露出来。这时候可以使用机器扩容、服务重启、接口限流等手段来维持服务的正常运行,给问题定位争取一定的时间。

3.问题定位

通过监控或者 GC 日志,我们可以观察到每次 FULL GC 后是否都能正常回收内存,但是内存很快又被占满了,从而出现频繁 FULL GC。

这个情况可能是因为如下原因导致:

  • 新生代 Eden 区内存配置太小,导致大量新创建的对象直接进入老年代,导致老年代迅速被占满。
  • 服务器的内存配置满足不了现有的业务量,如果代码本身没有问题的话,优先对内存进行扩容

如果每次 FULL GC 只能回收一点点内存,不能正常回收内存,从而导致频繁GC。可通过 jmap -histo 命令并结合 dump 堆内存文件作进一步分析,查看是哪个对象占用了大量内存不释放,从而定位到出问题的具体代码位置。修改测试后进行紧急版本上线。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的架狗师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值