一、 dump jvm 内存

1.1 执行jps 找出线程PID

jps 

执行结果如下:
jvm堆栈及java线程轨迹导出
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内存堆信息
jvm堆栈及java线程轨迹导出
2.3 开始分析
1)点击 Open Dominator Tree for entire heap.
jvm堆栈及java线程轨迹导出
2)得到的结果中,占用内存比例最大的是mybaties的对象
jvm堆栈及java线程轨迹导出

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

3.1 执行命令导出

jstack 262 >test.txt

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

3.2 导出结果如图
jvm堆栈及java线程轨迹导出
有情链接:可以用shell脚本自动dump,线程最大,内存占用最大的线程
https://blog.csdn.net/qianghaohao/article/details/80379118

相关文章:

  • 2022-01-05
  • 2021-08-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-22
  • 2022-01-07
  • 2022-01-15
  • 2021-11-22
猜你喜欢
  • 2021-10-25
  • 2021-04-18
  • 2022-02-01
  • 2022-12-23
  • 2021-07-09
  • 2022-02-15
相关资源
相似解决方案