在生产环境中,我们项目有时候会出现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
执行完以后,就会发现,在当前目录下会生成一个文件,我这里是为你们演示了两次,所以有两个文件,这个都不重要