Java內存溢出分析

1:下載IBM HeapAnalyzer分析工具包:ha453.jar包

進入jar包目錄-->用cmd命令:java -Xmx800m -jar ha453.jar -->運行後打開heapDump文件:java_pid4944.hprof 【下面是生成heapDump文件的方法】


方法一:

如果手動啓動tomcat則

打開win7:tomcat/bin/catalina.bat【Linux:catalina.sh】中添加下面設置
set JAVA_OPTS=-XX:+HeapDumpOnOutOfMemoryError


如果用Eclipse啓動Tomcat則

Preferences --> Installed JREs --> Edit當前項目的jdk jar包 
    --> 設置Default VM Arguments:-XX:+HeapDumpOnOutOfMemoryError 

【解釋:-XX:+HeapDumpOnOutOfMemoryError:當程序拋出heap dump space異常時,會生成一個hprof文件:如java_pid4944.hprof,位置可能在classpath或tomcat/bin】


方法二:

進入JDK安裝目錄:C:\Program Files\Java\jdk1.6.0_45\bin -->雙擊:jconsole.exe 【圖形工具很好用】

連接:org.apache.catalina.startup... --> MBean -->com.sun.management>HotSpotDiagnostic>操作>dumpHeap中,點擊 dumpHeap按鈕。

生成的dump文件在jdk1.6.0_45\bin目錄下面


方法三:

使用$JAVA_HOME/bin/jmap -dump來觸發,eg:jmap -dump:format=b,file=/home/longhao/heamdump.out <pid>

方法四:

使用hprof。啓動虛擬機加入-Xrunhprof:head=site,會生成java.hprof.txt文件。該配置會導致jvm運行非常的慢,不適合生產環境。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章