IBM Java 和 Sun Java支持的第三方工具不太一样,在AIX 服务器上只能安装IBM JAVA,那么当我们运行的Java程序出现可疑的内存泄漏,该如何诊断呢?
一、什么是heapdump
HeapDump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况,这种文件需要相应的工具进行分析。
二、如何生成Heapdump:
1. 设置参数
export IBM_HEAPDUMP=true
export IBM_HEAPDUMPDIR=/tmp/java
2. 找出正在运行的java 进程。
通过ps -ef 找出进程号,比如如下的例子找出运行HellowWorld Java程序的进程号
# ps -ef | grep -i java
ucdaxxx 8388616 1 0 Apr 22 - 1:07 /usr/java8_64/bin/java -Dfile.encoding=UTF-8 -jar /opt/xxx/ibm-ucdagent/monitor/air-monitor.jar /opt/urbancode/ibm-ucdagent /opt/urbancode/ibm-ucdagent/bin/worker-args.conf 7000
pcoxxxe 9764918 9240722 0 Apr 22 - 1:17 /usr/java6/bin/java -Xmx512m -Xms20m -Xscmx10m -Xshareclasses -Xbootclasspath/p:/usr/java6/jre/lib/ibmjsseprovider2.jar -Dfile.encoding=UTF-8 -Xbootclasspath/