DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

通过dump文件分析Java程序运行状态


Java程序的快照(dump)分为两种:thread dump, heap dump。前者记录了进程(process)中各线程(Thread)(在CPU中的)运行状态主要用来解决死锁(deadlock)问题,后者记录了Java堆的情况,主要用来分析内存泄露问题。

生成堆dump(heapdump)文件方法 1. 在启动Java程序时添加参数:-XX:+HeapDumpOnCtrlBreak -XX:HeapDumpPath=,完整示例见文末;

  1. 启动程序;

  2. 用jps或者ps指令找到此程序pid,例如17992;

  3. 运行kill -3 ;

  4. 在my_dump_path下可以找到生成的dump文件,文件名为java_pid.hprof.,例如:java_pid17992.hprof.20120519.141323

启动程序的完整脚本:

!/bin/sh

JARS="" for i in ./*.jar; do JARS="\(JARS":\)i done JAVA_OPTS="-XX:+HeapDumpOnCtrlBreak -XX:HeapDumpPath=\(HOME/backup" exec "\)/bin/java" ${JAVA_OPTS} -cp $JARS com.leechau.mina.echoServer.EchoServer 分析dump文件



Published

May 19, 2012

Last Updated

May 19, 2012

Category

Tech

Tags

  • dump 2
  • Java 106
  • jvm 4

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor