java打印线程、堆dump

查看pid

ips 命令,找到你当前系统名字的pid,pid很重要,后续的很多命令都是根据pid来查询的。
注意:tomcat的为bootstrap
java打印线程、堆dump

查看线程快照

jstack -l pid
例子:
jstack -l 12340 >a.text
获取线程快照信息重定向到当前目录a.text
java打印线程、堆dump

注意:线程快照分析我们以后再说

堆快照

jmap -dump:format=b,file=dump.txt pid
jmap -dump:format=b,file=dump.txt 12340

对快照分许需要借助工具

jvisualvm

jdk自带的图形化界面,可以自动生成线程dump、堆dump,形象化分许内存工具
java打印线程、堆dump

jconsole

同jvisualvm类似,都是图形化界面
java打印线程、堆dump

内存溢出自动打印堆dump

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=D:\temp
-Xms20M
-Xmx20M

当内存溢出时,head dump文件,然后根据工具分析堆内存使用情况。
java打印线程、堆dump

jmap -head pid

打印堆内存使用情况