【JVM调错】由于GC导致生产环境高CPU错误

在2020年3月时候突然接到用户反映产品很卡。
作为一个开发兼运维(临时接管)的好处就凸显出来了,上来就干。

  1. 首先查看内存和CPU
    发现CPU问题:
    在这里插入图片描述在这里插入图片描述
    2.拉取 25376 的 stack 信息【保存状态】
    3、通过 top -Hp 命令
    发现有如下线程占用较高cpu
    在这里插入图片描述
    4、根据线程占用率榜对应 栈信息发现:
    1)占用39.2%以上的线程号为 25378~25391(转换为16进制为:0x6322-0x632f) 共14个线程,发现14个线程都在ParallelGC
    在这里插入图片描述
    2)查看GC信息确实爆炸
    在这里插入图片描述
    其中Eden 区,和 serviver 0区,老年区内存使用几乎100%。
    5、可能存在内存泄漏问题:由于卡到无法使用只有重启 于是保存了 堆文件,和本地正常运行堆文件比较【没有冗余部署,而且卡到无法使用,别说生产环境能随便重启:涉及到项目特殊性,保密具体状况】
    1)、
    在这里插入图片描述
    问题极有可能存在如下几个类中。
    2)点开String类发现实例为如下
    在这里插入图片描述
    发现都是一些人员信息注意到第一步的图片,可以暂时推断问题的原因,再继续分析时没有这部分的代码。提交禅道等回复。

后来证实推断合理。得到了部门大佬的肯定,这时候感觉干到晚上1点半都是值得的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值