使用JavaVisualVM排查FullGC问题

1.工具准备

在这里使用 jdk/bin 目录下的 jvisualvm.exe,是自带工具。

2.工具使用

将下载到本地的dump 文件导入工具中,会展示各个类的实例数占比,大小占比。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.问题排查

  1. 前期准备

在分析dump文件之前,我们可以先观察应用中接口的流量情况,或者根据一线反馈,去初步估计问题可能出现的位置,这样在后面的问题排查中更有目的性。

  1. 分析定位问题

2.1 使用工具去观察dump文件中,各种类和实例的个数。一般情况下,排在最面前,占用空间最多的,都是基础类型。我们自己的各种类和对象中,也是包含的各种基础类型。
2.2 观察是否有本项目使用的类和对象,在dump文件中实例数或者内存占比额外大,有这种类或实例,和1中怀疑出现问题的地方互相印证,确定问题原因。
2.3 如果不在之前怀疑出现问题的地方,去找使用这些实例多的方法以及这些方法的上下文,确定问题原因。

  1. 问题确认

在线下环境重新复现gc问题

4. 问题修复

3.1 考虑问题是否可以在线修复,通过改数据或者改配置的方式。
3.2 如果无法在线修复,考虑问题的紧急性,是hotfix还是在后续正常迭代修复。

5. 问题验证

修复以后重新上线,重新复现此场景,观察问题是否还会出现,是否已经被修复。

6. 复盘

根据问题出现场景和出现原因,以及问题产生的影响范围,记录开发过程中出现此问题的环节,在后续开发过程中避免此类问题再发生。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值