java打印线程、堆dump
java打印线程、堆dump
查看pid
ips 命令,找到你当前系统名字的pid,pid很重要,后续的很多命令都是根据pid来查询的。
注意:tomcat的为bootstrap
查看线程快照
jstack -l pid
例子:
jstack -l 12340 >a.text
获取线程快照信息重定向到当前目录a.text
注意:线程快照分析我们以后再说
堆快照
jmap -dump:format=b,file=dump.txt pid
jmap -dump:format=b,file=dump.txt 12340
对快照分许需要借助工具
jvisualvm
jdk自带的图形化界面,可以自动生成线程dump、堆dump,形象化分许内存工具
jconsole
同jvisualvm类似,都是图形化界面
内存溢出自动打印堆dump
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=D:\temp
-Xms20M
-Xmx20M
当内存溢出时,head dump文件,然后根据工具分析堆内存使用情况。
jmap -head pid
打印堆内存使用情况