生产排查jvm内存溢出问题的实战方式(具体到定位某个方法)

生产排查jvm内存溢出问题的高效方式:
需要工具:VisualVm2.0.3、百度搜索下载arthas可以找到阿里旗下的arthas官网(arthas里的jar包下载到服务器某个目录下)
1、curl -O https://arthas.aliyun.com/arthas-boot.jar
2、然后执行命令(java -jar arthas-boot.jar)
3、执行jar包命令后会出现服务器上所有的jar包,选择1或者2等选择需要查看的应用jar包,然后enter回车就会进入arthas用户下查看具体的jvm
4、输入dashboard 仪表看可以看到生产的堆栈原空间等信息,看不到具体的类
5、把具体的jvm内存信息下载成.hprof的文件,命令:heapdump /tmp/dump-1.hprof (下载到文件服务器的tmp目录下后再下载到本地用VisualVm工具分析)
6、下载好VisualVM工具,在bin目录下找到,打开VisualVM.exe,加载dump-1.hprof文件分析
7、主要看哪个类在占用的内存最大,找到最大的的类右键在新的标签页打开,会出现很多节点,只需要随机取第一个节点选中,点击按钮GC Root,查看根节点
这时候就能看见哪个类有问题,然后再选中这个类,右键select in threads,既可以查到这个类应该的方法报错,然后根据本地代码去排查
8、排查完成后,再用VisualVM监控下当前应用,看看Sampler样例的Memory内存的Heap堆的列表图里内存实时的使用情况,执行一次GC,看看内存是否可以回收
如果可以回收,既问题解决,之前的是因为没有关闭OSS连接所以无法回收,关闭后就可以回收了,堆内存就恢复正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值