導航:首頁 > 文件教程 > 生成jvmdump文件

生成jvmdump文件

發布時間:2024-05-12 00:36:26

A. 如何生成WAS的heapmp文件

WAS6.1中,在使用IBM JDK的平台上,可以直接使用以下的方法,隨時生成所需的heapmp文件。如果在性能診斷顧問程序配置裡面選中了"啟用自動堆轉儲收集,則可以自動在WebSphere profile所在的路徑下(例如/opt/IBM/WebSphere/WAS6.1/profiles/AppSrv01)生成heapmp文件,備用戶進行分析。
在使用IBM SDK的平台上,例如AIX, Linux和Windows,在啟用了性能診斷顧問工具後,如果探測到有內存泄漏發生,WebSphere會自動生成兩個heapmp文件,供後續分析使用。
我們在任何時候,可以隨時手動生成所需的heap mp文件。在WAS6.1 profile的bin目錄下,首先運行wsadmin 腳本客戶端,然後可以調用generateHeapDump操作來完成。
關鍵步驟:
1. 找到JVM對象名字。
<wsadmin> set objectName
WebSphere:type=JVM,process=<WebSphere伺服器名字>,node=<節點名字>,*]

2. 對JVM MBean調用generateHeapDump操作。
<wsadmin> $AdminControl invoke $objectName generateHeapDump

例如:
[root@csspvm bin]# pwd
/opt/IBM/WebSphere/WAS6.1/profiles/AppSrv01/bin
[root@csspvm bin]# ./wsadmin.sh -username root -password demo4you
WASX7209I: Connected to process "server1" on node csspvmNode02 using SOAP
connector; The type of process is: UnManagedProcess
WASX8011W: AdminTask object is not available.
WASX7029I: For help, enter: "$Help help"
wsadmin>set objectName [$AdminControl queryNames
WebSphere:type=JVM,process=server1, node=csspvmNode02,*]
WebSphere:name=JVM,process=server1,platform=proxy,node=csspvmNode02,
j2eeType=JVM,J2EEServer=server1,
version=6.1.0.0,type=JVM,mbeanIdentifier=JVM,cell=csspvmNode02Cell,spec=1.0
wsadmin>$AdminControl invoke $ objectName generateHeapDump
/opt/IBM/WebSphere/WAS6.1/profiles/AppSrv01/./heapmp.20060904.075650.3576.phd
wsadmin>quit

理想情況下,在探測到問題時,盡快生成一個初始的heap mp,然後密切監控內存使用情況,等到泄漏了足夠的內存的時候,再生成另外一個heap mp,這樣可以對比分析以更准確地找到泄漏的原因。
註: 生成HeapDump文件的過程是比較耗資源的,所以請只在必須的時候做這樣的操作。
轉載,僅供參考,祝你愉快,滿意請採納。

B. 在新建虛擬機時出現問題

JConsole

JConsole 圖形用戶界面是一種符合 java 管理擴展(JMX)規范的監視工具。JConsole 使用 Java 虛擬機 (Java VM) 的廣泛檢測來提供有關在 Java 平台上運行的應用程序的性能和資源消耗的信息。

使用方法 本地

C. 什麼是java mp文件 怎麼生成

java mp heap 是分配給實例類和數組對象運行數據區,所有java線程在運行期間共享heap中的數據。Java heap mp相當於java應用在運行的時候在某個時間點上打了個快照(snapshot)。
有java mp文件生成的方式如下:
1.使用$JAVA_HOME/bin/jmap -mp來觸發,eg:jmap -mp:format=b,file=/home/longhao/heammp.out
2.使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun.management>HotSpotDiagnostic>操作>mpHeap中,點擊 mpHeap按鈕。生成的mp文件在java應用的根目錄下面。
3.在應用啟動時配置相關的參數 -XX:+HeapDumpOnOutOfMemoryError,當應用拋出OutOfMemoryError時生成mp文件。
4.使用hprof。啟動虛擬機加入-Xrunhprof:head=site,會生成java.hprof.txt文件。該配置會導致jvm運行非常的慢,不適合生產環境。

D. 如何通過mat從java內存mp中找到緩存對象中的所有字元串

生成java內存mp文件

標准做法,jmap mp,需要sudo許可權,另外jmap指定的mp文件一定要是啟動服務的用戶可寫,比如可以新創建一個文件夾

sudo mkdir /home/q/memmp
sudo chown resin:resin /home/q/memmp

sudo -u resin /home/q/java/default/bin/jmap -mp:live,format=b,file=/home/q/memmp/memMap.20130527.hprof ${pid}

把mp文件拿到本地

把mp文件壓縮下,否則會很大,scp到本地

安裝mat

直接在eclipse里:

1.Help->Install New Software

2.輸入update site: http://download.eclipse.org/mat/1.2/update-site/,然後一直next就行了,安裝完重啟eclipse

3.最好創建一個單獨的workspace來放內存mp文件

把mp文件導入mat

1.打開eclipse,選擇上一步你創建的存放內存mp文件的workspace,我本機上是~/mat
2.打開剛才拿到本地的mp文件,然後等著mat解析就完了,注意這時候你可能需要修改eclipse安裝文件下的eclipse.ini,調整下eclipse的jvm參數(xms和xmx),把heap調大些,否則解析過程會報OOM

3.解析完後會生成一個Overview,我們一般會選擇org.apache.catalina.loader.WebappClassLoader,作為分析top
consumer的切入點,這是tomcat上web應用的classloader

4.單擊餅圖上org.apache.catalina.loader.WebappClassLoader的區域,會出現一個彈出菜單,選擇List
Objects->with incoming references,因為所有的web應用內的對象都會引用它們自己的class
loader,也就是org.apache.catalina.loader.WebappClassLoader
5.得到如下所示列表,單擊retained heap這個tab標簽可以排序,選擇按照佔用內存的大小倒排序,得到了top memory
consumers列表

定位緩存對象

我們關心的是top consumer里的RtTreeCache里,有多少重復房型,怎麼得到的呢,follow the steps:

1.查看RtTreeCache對象的outgoing
reference,因為我們需要看這個對象裡面的屬性,屬性對象也就是RtTreeCache對象引用的對象,也就是outgoing reference

2.找到我們需要分析的數據在對象結構中的位置

3.可以看到我們要查找的目標是RtTreeCache對象下的所有HotelRtTree對象的rtReverseMap對象屬性下的table數組內所有entry的key,我們接下來就看看怎麼把這個冗長的關系轉化成一個簡單的OQL語句

寫MAT OQL

OQL是MAT里的一個內嵌查詢語言,它的官方描述很形象:
Memory Analyzer has a built-in object query
language (OQL) that allows to query the heap mp with custom SQL-like queries. Just
think of classes as tables, objects as rows, and fields as columns.

總結

jmap + mat是我們分析java內存的利器,而通過mat
oql,我們可以從mp文件里提取出更多的類似於有多少內容相同的不同字元串對象等信息來幫助我們做技術決策。

E. JVM調優的常見命令行工具有哪些

JVM調優的常見命令工具包括:
1)jps命令用於查詢正在運行的JVM進程,
2)jstat可以實時顯示本地或遠程JVM進程中類裝載、內存、垃圾收集、JIT編譯等數據
3)jinfo用於查詢當前運行這的JVM屬性和參數的值。
4)jmap用於顯示當前Java堆和永久代的詳細信息
5)jhat用於分析使用jmap生成的mp文件,是JDK自帶的工具
6)jstack用於生成當前JVM的所有線程快照,線程快照是虛擬機每一條線程正在執行的方法,目的是定位線程出現長時間停頓的原因。

閱讀全文

與生成jvmdump文件相關的資料

熱點內容
如何刪除手機軟體的重復文件 瀏覽:908
微信頁面沒有添加圖標 瀏覽:47
暗黑綠色裝備升級 瀏覽:261
到哪裡學編程啊 瀏覽:752
電腦粉碎文件和卸載 瀏覽:365
怎麼查看共享電腦所有文件 瀏覽:617
創意編程社區賬號在哪裡 瀏覽:377
好用的壓縮文件 瀏覽:538
360下載的補丁包在哪個文件夾 瀏覽:988
微信54安卓版本官網 瀏覽:698
為什麼cnc編程找工作難 瀏覽:777
sql資料庫埠不通 瀏覽:361
javaword轉swf 瀏覽:174
cms數據更新是什麼 瀏覽:39
電腦保密櫃在文件里怎麼找不到了 瀏覽:225
nodejs前端後端 瀏覽:129
程序俠後台多少 瀏覽:32
mysqle執行sql文件在哪裡 瀏覽:466
資料庫iostat1 瀏覽:986
java圖片工具包 瀏覽:159

友情鏈接