1. Linux通用输出线程和堆Dump的方法
kill -3 <pid>
说明:不同JVM下要输出堆dump还需要在启动JVM时特殊设置,分别如下
1)IBM JVM
IBM_HEAPDUMP=true
export IBM_HEAPDUMP
IBM_HEAPDUMP_OUTOFMEMORY=true
export HEAPDUMP_OUTOFMEMORY
2)Jrockit JVM 1.5+
具体请见:http://docs.oracle.com/cd/E15289_01/doc.40/e15062/toc.htm
3)Sun JVM
2. SUN JDK1.5以上输出堆Dump
1) JAVA_HOME/bin/jmap -dump:live,format=b,file=<outfilepath> <PID> //PID为进程号,outfilepath为输出文件路径及文件名称。
2) jvisualvm 这个功能更强大。
3. 分析SUN JDK1.5以上输出堆Dump
JAVA_HOME/bin/jhat -J-mx768m -port <端口号:默认为7000> <heap_dmp_file> //heap_dump_file为jmap输出的dump文件。
命令执行后会开启一个web服务,通过浏览器输入本机地址就可以查看堆分析情况。