jvm堆栈及java线程轨迹导出

版权声明:做一个有尊严的生产者 https://blog.csdn.net/qq_36918149/article/details/88385838

一、 dump jvm 内存

1.1 执行jps 找出线程PID

jps 

执行结果如下:
在这里插入图片描述
1.2 导出jvm线程对应的堆栈信息

jmap  -dump:live,format=b,file=file.bin 262

备注:file.bin 表示文件名称,262表示jvm线程PID ,-dump:live 表示堆中存活的对象

二、分析jvm内存对象信息

2.1 、下载分析软件MemoryAnalyzer
官网: http://www.eclipse.org/mat/

2.2 选择刚才导出的jvm内存堆信息
在这里插入图片描述
2.3 开始分析
1)点击 Open Dominator Tree for entire heap.
在这里插入图片描述
2)得到的结果中,占用内存比例最大的是mybaties的对象
在这里插入图片描述

三、导出java进程中个线程的轨迹,以及这些线程锁持有的锁

3.1 执行命令导出

jstack 262 >test.txt

备注:262 表示PID ,test.txt 表示导出文件

3.2 导出结果如图
在这里插入图片描述
有情链接:可以用shell脚本自动dump,线程最大,内存占用最大的线程
https://blog.csdn.net/qianghaohao/article/details/80379118

猜你喜欢

转载自blog.csdn.net/qq_36918149/article/details/88385838