0
点赞
收藏
分享

微信扫一扫

linux、windows生成dump

进击的铁雾 2022-02-14 阅读 82

linux、windows生成dump

linux生成dump

1.找到java进程ID

随便选种方式先找到Java进程ID

jps -ml
-nap|grep 8080
lsof -i:8080
ps -ef|grep java

netstat -nap参数描述

-a (all)显示所有选项,netstat默认不显示LISTEN相关
-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)

在这里插入图片描述

2.使用 jmap命令

jmap -heap 8145			#查看概要信息
jmap -histo 8145     	#打印每个class的实例数目,内存占用,类全名信息
jmap -histo:live 8145 	#只统计活的对象数量
jmap -heap 8145 >1.txt jmap -histo 8145 >2.txt  #这是输出到文件

重点:生成dump(format=b,表示以字节的形式)

jmap -dump:format=b,file=/root/heap.hprof 8145

在这里插入图片描述
/root目录下就会有heap.hprof文件,这就是dump文件在这里插入图片描述
然后导出分析,到处是直接传输dump比较慢,用命令压缩下更好,虽然传输速度一样,但体积会小很多很多,在root目录下

tar -zcvf dump.tar.gz ./heap.hprof

在这里插入图片描述
这样就生成了dump文件,拿到dump后,可以用JProfiler分析,也可以用独立出eclipse的MemoryAnalyzer分析,然后就走向秃头之路了。
如果操作对你有帮助的话,记得帮忙点个赞哦😘

windows生成dump

1.找java进程ID

管理员启动cmd,执行

netstat -ano|findstr "8080"

在这里插入图片描述

2.jmap导出dump

jmap -dump:format=b,file=C://heap.hprof 188376

注意:1.jmap是java自带的,所以java环境变量要配好。
           2.cmd要以管理员身份启动才能运行jmap。

如果操作对你有帮助的话,记得帮忙点个赞哦😘

举报

相关推荐

0 条评论