一、标准的SUN/Oracle JVM
当内存溢出时生成heapdump文件配置如下
-Xloggc:${dir}/temp_gc.log (GC日志文件)
-XX:+HeapDumpOnOutOfMemoryError (内存溢出时生成heapdump文件)
-XX:HeapDumpPath=${dir} (heapdump文件存放位置)
如果要即时动态生成heapdump文件可以使用jmap命令
jmap -dump:format=b,file=${path}/heapdump.hprof ${pid}
二、HP JVM
-Xverbosegc:file=${dir}/temp_gc.log (GC日志文件)
-XX:+HeapDumpOnOutOfMemoryError (内存溢出时生成heapdump文件)
-XX:+HeapDumpOnCtrlBreak (可以通过ctrl+break组合键动态生成heapdump文件)
-XX:HeapDumpPath=${dir} (heapdump文件存放位置)
三、IBM JVM
非windows操作系统环境中
-XverboseGClog: ${dir}/temp_gc.log (GC日志文件)
-Xdump:heap:events=user,file=${目录}/pid%uid%pid.phd
表示可以根据需要通过kill -3 pid 产生DUMP文件,%uid和%pid为变量
手动Heap Dump:
1 ps -ef | grep java 查找应用相关的进程号:
root 5569 1 0 Feb04 ? 03:07:17 java -jar /opt/appd/MachineAgent/machineagent.jar
jboss 19225 19155 30 Oct30 ? 2-09:01:22 /usr/java/jdk1.6.0_45/bin/java -server -Xms8g -Xmx8g -Xmn1g -XX:PermSize=512m -XX:MaxPermSize=512m -Xss256k -Dweblogic.Name=server13960-store1 -Djava.security.policy=/var/wls/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.security.SSL.trustedCAKeyStore=/var/wls/wlserver_10.3/server/lib/cacerts -javaagent:/opt/appd/AppAgent/javaagent.jar -Dappdynamics.agent.applicationName=ZenniOptical-98006 -Dappdynamics.agent.tierName=Prod_Customer_Facing -Dappdynamics.agent.nodeName=server13960-store1 -Datg.dynamo.server.name=PRD-store1 -Datg.dynamo.layers=PRD -Ddisable.atg.dynamo.log=true -Datg.dynamo.data-dir=/var/wls/user_projects/domains/zenni_domain/ATG-Data -Djava.net.preferIPv4Stack=true -DUseSunHttpHandler=true -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50 -XX:ParallelGCThreads=6 -XX:ConcGCThreads=4 -XX:+DisableExplicitGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -verbose:gc -Xloggc:/var/logs/store1/gc/gc.log.2015-10-30-0110 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/logs/store1/heapdump -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -da -Dplatform.home=/var/wls/wlserver_10.3 -Dwls.home=/var/wls/wlserver_10.3/server -Dweblogic.home=/var/wls/wlserver_10.3/server -Dweblogic.management.discover=false -Dweblogic.management.server=t3://10.206.4.40:7001 -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/var/wls/patch_wls1036/profiles/default/sysext_manifest_classpath:/var/wls/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server
jboss 20757 20687 29 Oct30 ? 2-07:57:45 /usr/java/jdk1.6.0_45/bin/java -server -Xms8g -Xmx8g -Xmn1g -XX:PermSize=512m -XX:MaxPermSize=512m -Xss256k -Dweblogic.Name=server13960-store2 -Djava.security.policy=/var/wls/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.security.SSL.trustedCAKeyStore=/var/wls/wlserver_10.3/server/lib/cacerts -javaagent:/opt/appd/AppAgent/javaagent.jar -Dappdynamics.agent.applicationName=ZenniOptical-98006 -Dappdynamics.agent.tierName=Prod_Customer_Facing -Dappdynamics.agent.nodeName=server13960-store2 -Datg.dynamo.server.name=PRD-store2 -Datg.dynamo.layers=PRD -Ddisable.atg.dynamo.log=true -Datg.dynamo.data-dir=/var/wls/user_projects/domains/zenni_domain/ATG-Data -Djava.net.preferIPv4Stack=true -DUseSunHttpHandler=true -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50 -XX:ParallelGCThreads=6 -XX:ConcGCThreads=4 -XX:+DisableExplicitGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -verbose:gc -Xloggc:/var/logs/store2/gc/gc.log.2015-10-30-0114 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/logs/store2/heapdump -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -da -Dplatform.home=/var/wls/wlserver_10.3 -Dwls.home=/var/wls/wlserver_10.3/server -Dweblogic.home=/var/wls/wlserver_10.3/server -Dweblogic.management.discover=false -Dweblogic.management.server=t3://10.206.4.40:7001 -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/var/wls/patch_wls1036/profiles/default/sysext_manifest_classpath:/var/wls/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server
jboss 22216 22146 33 Oct30 ? 2-14:58:04 /usr/java/jdk1.6.0_45/bin/java -server -Xms8g -Xmx8g -Xmn1g -XX:PermSize=512m -XX:MaxPermSize=512m -Xss256k -Dweblogic.Name=server13960-store3 -Djava.security.policy=/var/wls/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.security.SSL.trustedCAKeyStore=/var/wls/wlserver_10.3/server/lib/cacerts -javaagent:/opt/appd/AppAgent/javaagent.jar -Dappdynamics.agent.applicationName=ZenniOptical-98006 -Dappdynamics.agent.tierName=Prod_Customer_Facing -Dappdynamics.agent.nodeName=server13960-store3 -Datg.dynamo.server.name=PRD-store3 -Datg.dynamo.layers=PRD -Ddisable.atg.dynamo.log=true -Datg.dynamo.data-dir=/var/wls/user_projects/domains/zenni_domain/ATG-Data -Djava.net.preferIPv4Stack=true -DUseSunHttpHandler=true -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50 -XX:ParallelGCThreads=6 -XX:ConcGCThreads=4 -XX:+DisableExplicitGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -verbose:gc -Xloggc:/var/logs/store3/gc/gc.log.2015-10-30-0118 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/logs/store3/heapdump -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -da -Dplatform.home=/var/wls/wlserver_10.3 -Dwls.home=/var/wls/wlserver_10.3/server -Dweblogic.home=/var/wls/wlserver_10.3/server -Dweblogic.management.discover=false -Dweblogic.management.server=t3://10.206.4.40:7001 -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/var/wls/patch_wls1036/profiles/default/sysext_manifest_classpath:/var/wls/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server
jboss 22688 22638 0 20:45 pts/2 00:00:00 grep java
jboss 24037 23967 31 Oct30 ? 2-11:55:53 /usr/java/jdk1.6.0_45/bin/java -server -Xms8g -Xmx8g -Xmn1g -XX:PermSize=512m -XX:MaxPermSize=512m -Xss256k -Dweblogic.Name=server13960-store4 -Djava.security.policy=/var/wls/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.security.SSL.trustedCAKeyStore=/var/wls/wlserver_10.3/server/lib/cacerts -javaagent:/opt/appd/AppAgent/javaagent.jar -Dappdynamics.agent.applicationName=ZenniOptical-98006 -Dappdynamics.agent.tierName=Prod_Customer_Facing -Dappdynamics.agent.nodeName=server13960-store4 -Datg.dynamo.server.name=PRD-store4 -Datg.dynamo.layers=PRD -Ddisable.atg.dynamo.log=true -Datg.dynamo.data-dir=/var/wls/user_projects/domains/zenni_domain/ATG-Data -Djava.net.preferIPv4Stack=true -DUseSunHttpHandler=true -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50 -XX:ParallelGCThreads=6 -XX:ConcGCThreads=4 -XX:+DisableExplicitGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -verbose:gc -Xloggc:/var/logs/store4/gc/gc.log.2015-10-30-0121 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/logs/store4/heapdump -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -da -Dplatform.home=/var/wls/wlserver_10.3 -Dwls.home=/var/wls/wlserver_10.3/server -Dweblogic.home=/var/wls/wlserver_10.3/server -Dweblogic.management.discover=false -Dweblogic.management.server=t3://10.206.4.40:7001 -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/var/wls/patch_wls1036/profiles/default/sysext_manifest_classpath:/var/wls/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server
比如找第一个节点,store1 对应的 pid是19225
执行:
jmap -dump:format=b,file=heapdump.hprof 19225
还有一种 直接kill -3 pid 生成 heapdump