1. 程式人生 > >使用HeapAnalyzer分析內存泄漏

使用HeapAnalyzer分析內存泄漏

websphere java 應用 數據 dumps admin svg 異常 ***

從IBM網站下載ha433包,釋放,執行ha433.jar文件

https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091

使用教程

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W3b463571efc8_4f02_99af_3cbc0da42ddc/page/IBM%20HeapAnalyzer%20Information

javacore.***.txt :

關於cpu的,javacore文件是java進程的快照,主要保存的是Java應用各線程在某一時刻的運行的位置,即JVM執行到哪一個類、哪一個方法、哪一行上。也即threaddump文件。

heapdump.***.phd : 關於memory的,heapdump文件是指定時刻java堆棧的快照,是一個二進制鏡像文件,它保存了某一時刻JVM堆中對象的使用情況。

core.***.dmp : core文件是java宕掉生成的操作系統級別的進程二進制鏡像文件。又叫核心轉儲,當程序運行過程中發生異常,程序異常退出時,由操作系統把程序當前的內存狀況存儲在一個core文件中。

Snap.***.trc :

snap文件是快速追蹤的保留在跟蹤緩沖區裏的追蹤點數據,用來分析本地內存的OOM異常。

==============================華麗的分割線==============================
如何查看javacore文件、heapdump文件?
原文鏈接:http://blog.chinaunix.net/uid-1844931-id-3229278.html

一。查看javacore文件
1.下載ThreadDumpAnalyser,graphviz,svgviewer
ThreadDumpAnalyser:
https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c
2.運行runall.bat javacore.txt,會產生三個文件dumps.xml,locktree1.svg,sidebyside.html

二。查看heapdump文件
1.從IBM網站下載ha433包,釋放,執行ha433.jar文件
IBM HeapAnalyzer:
https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091
2.在ha433窗口打開heapdump.phd,從中會顯示分析結果

==============================華麗的分割線==============================
如何生成javacore和heapdump文件?
原文鏈接:http://blog.csdn.net/happyqwz/article/details/8255762

進入wsadmin
D:\IBM\WebSphere\AppServer\bin>wsadmin -user wasadmin -password password
1、生成javacore文件
設置jvm環境變量:
wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
生成javacore文件:
wsadmin>$AdminControl invoke $jvm dumpThreads

/2、生成heapdump文件
找到JVM對象名字:
wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]
生成heapdump文件:
wsadmin>$AdminControl invoke $objectName generateHeapDump

使用HeapAnalyzer分析內存泄漏