工作内容,不对外开放
前言
首先问题是这样的,周五正在写文档,突然收到了线上报警,发现cpu占用达到了90多,上平台监控系统查看容器,在jvm监控中发现有一个pod在两个小时内产生了61次youngGc一次fullGc,这个问题特别严重且少见,由于我之前也没有排查过此类问题,所以也是百度,但整个过程也有一些自己的思考,所以跟大家分享一下~
当时场景
我先给大家看一下一副正常的gc曲线监控(为保密性,我自己按照平台监控画了出来):
1.正常的jvm监控曲线图

2.产生问题的jvm监控曲线图
可以看的出来,正常情况下该系统很少gc(具体看业务系统使用情况、jvm内存分配),但是在图二中出现了大量异常的gc情况甚至触发了fullGc,所以我当时立马进行了分析。

可以看的出来,正常情况下该系统很少gc(具体看业务系统使用情况、jvm内存分配),但是在图二中出现了大量异常的gc情况甚至触发了fullGc,所以我当时立马进行了分析。
<
本文分享了一次线上CPU飙升问题的排查经历,主要涉及Java应用的GC异常,表现为频繁Young GC和Full GC。通过监控系统、jvm监控、线程分析等手段定位到问题出在导出Excel的接口,由于在列表查询接口中使用了嵌套循环导致大量内存分配,影响GC。修复代码并紧急上线后,问题得到解决。
订阅专栏 解锁全文
678





