linux环境下导出项目的堆栈dump文件

在生产环境中,我们项目有时候会出现OOM问题,比如说堆内存溢出,频繁GC等问题,如果我们需要解决问题的情况下,可能就需要导出项目的堆栈信息,对其堆栈内存进行分析。

接下来直接开始动手

我是使用自己的服务器上面启动了一个nacos注册中心,这个也是java写的一个项目,就用这个来做示范

进入服务器,先用jps查询运行中的java程序和进程id

jps

 上面图可以看出,我们现在有一个pid 为5145进程号的nacos服务端在运行,我们接下来可以把这个项目的堆栈信息导出来


jmap -dump:format=b,file=wanfile.dump 5145
//或者下面这个,都行。live的意思是导出存活对象,其实就是在导出之前执行一次fgc
jmap -dump:live,format=b,file=wanfile.dump 5145

执行完以后,就会发现,在当前目录下会生成一个文件,我这里是为你们演示了两次,所以有两个文件,这个都不重要

 我们通过命令,把这个文件下载到本地桌面

sz wanfile2.dump

下载到本地以后,我们可以通过jdk里面自带的jvm分析工具来分析文件中的对象信息,我们下面演示用jvisualvm 来分析dump文件

先找到jdk中jvisualvm.exe 程序,并双击打开

打开以后是这样的

 选择,文件-->  点击装入,选择文件类型为 *.dump 文件

 点击打开以后,就会出现一些 基本信息

 点击类,可以显示项目堆中存在的类信息,可以对堆中类信息进行分析,

 还可以使用 oql 来查询类对象信息,和sql语句语法差不多

 以上就是全部内容了,欢迎点赞收藏!

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风某人~Wind

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

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

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

打赏作者

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

抵扣说明:

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

余额充值