linux环境下导出项目的堆栈dump文件
Posted 风某人~Wind
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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语句语法差不多
以上就是全部内容了,欢迎点赞收藏!
以上是关于linux环境下导出项目的堆栈dump文件的主要内容,如果未能解决你的问题,请参考以下文章