當前位置:首頁 » 激光切割 » heapdump文件怎麼切割

heapdump文件怎麼切割

發布時間: 2021-01-09 09:35:44

⑴ 什麼是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運行非常的慢,不適合生產環境。

⑵ heapmp文件打開的時候報錯utfdataformatexception

在數據輸入流中或由實現該數據輸入介面的任何類中以 UTF-8
修改版格式讀取錯誤字元串內時容,拋出此異常。
DataInput 介面用於從二進制流中讀取位元組,並根據所有 Java 基本類型數據進行重構。同時還提供根據 UTF-8 修改版格式的數據重構 String 的工具。
對於此介面中的所有數據讀取常式來說,如果在讀取所需位元組數之前已經到達文件末尾 (end of file),則將拋出
EOFException(IOException
的一種)。如果因為到達文件末尾以外的其他原因無法讀取位元組,則將拋出 IOException 而不是
EOFException。尤其是,在輸入流已關閉的情況下,將拋出 IOException。

⑶ heapmp文件太大無法分析怎麼辦

v
HeapAnalyzer/HeapRoots是一款針對IBM JDK的內存文本鏡像HeapDump的分析工具
„ 特性:
– 離線分析,不影響生產系統
– 需要得到IBM JDK內存鏡像
– 只支持IBM JDK
– HeapRoots字元界面,HeapAnalyzer是HeapRoots的圖形界面
„ 啟動方式:
– Kill -3 <pid>得到heapmp文件
– 啟動HeapAnalyzer或者HeapRoots,載入heapmp文件
– 圖形化分析
„ HeapDump是IBM JDK Heap內存的一個文本鏡像,默認生成位置在Weblogic Server啟動目錄下,通常是Domain目錄
„ 如果得不到HeapDump,可能是禁止生成
„ HeapDump的生成開關
– export IBM_HEAPDUMP=true
– export IBM_HEAP_DUMP=true
– export IBM_HEAPDUMP_OUTOFMEMORY=true
– export IBM_JAVADUMP_OUTOFMEMORY=true
– export IBM_JAVACORE_OUTOFMEMORY=true
– export IBM_HEAPDUMPDIR=<directory_path>
„ 注意:
– 通常HeapDump會比較大,尤其是在Heap內存設置很大的情況下
– 為了重現問題,得到現場數據,建議先把HeapDump調小,推薦1G以下
– 在Window上,如果HeapDump大於1G,可能會無法打開,出現OOM錯誤
– 啟動HeapAnalyzer需要指定-Xmx參數
„ 啟動界面

„ 內存按樹狀引用關系顯示

„ 內存按對象和類型顯示

„ 找到懷疑泄漏的內存對象

預防出現OOM,需要注意的地方:

„ 系統管理
– 足夠的物理內存,設置適當的Swap區大小
– 最佳的HEAP內存設置
– 使用最新的操作系統/最新的JDK/最新版本的WLS
– 使用Weblogic Server認證的JDK
– 盡量少使用第三方本地代碼,或使用Java替代方案
– 根據應用設置適當的HttpSession Timeout時間
– 根據應用設置適當的EJB Pool/Cache
„ 代碼編寫
– 不要放置大量對象到Session中
– 不要緩存太多數據
– 用完的資源一定要close(),例如IO,File,JDBC連接
– 合理的從資料庫取得適量數據
– XML解析對大內存的需求
– 統計和報表業務的負荷問題

下面結合實例來進行講解:

解決建議:

1) IBM JDK 1.4及以前版本:-Xms最好是-Xmx的一半對於SUN和HP的JDK,默認採用的是分代復制垃圾收集策略,建議將最大和最小值設成一樣大小。IBM 從1.5 版本的JDK開始,也支持分代復制垃圾收集策略,選擇該策略時,也建議將最大和最小值設成一樣大小。
2) 程序能否直接在後台轉換好文件根式,前台只負責下載,能較少資源佔用。
3) 前台數據量還要控制。因為報表在weblogic實現確實需要足夠支撐力來支持,目前沒有辦法,bea都不建議用weblogic來統計報表,不過目前也沒辦法了,WEB是趨勢,框架不能改只能來優化。
報表非同步程序內存溢出講下mp文件看到的一些現象以及分析過程:
看了下內存異常的javacore 文件我們可以看到core文件中的程序以下部分,在做數據轉換,以及顯示非同步數據結果(如圖一):那這個程序是怎麼導致內存溢出的呢,我們可以通過圖二看到Monitor監控到有heap lock導致了內存溢出,heap鎖,heap分配不足,導致內存溢出,目前看了設置已經調整到
-Xms1024m -Xmx2048m ,看來內存分配也不能解決太大問題了,32位jdk已經到極致,除非升級到jdk1.5+weblogic9,不過這個目前不考慮了。

既然看到了內存不足,是什麼在佔用這么多內存資源呢?我們來看圖:

可以看到佔用了內存86%的資源,除了系統資源佔用外,都被他所消耗,那還怎麼幹活,資源都光了。可以看到圖三中這些都是一些arrayLIst數組列表,這些一共有多少個呢?看圖三右側圖可以看到多少,已經很多了

可以看到佔用了內存86%的資源,除了系統資源佔用外,都被他所消耗,那還怎麼幹活,資源都光了。可以看到圖三中這些都是一些arrayLIst數組列表,這些一共有多少個呢?看圖三右側圖可以看到多少,已經很多了

at com.asiainfo.openboss.crm.cq.PublicAction$TransLineToRow.TransData(PublicAction.java(Compiled Code))
at com.asiainfo.openboss.crm.cq.PublicAction$TransLineToRow.doTranfer(PublicAction.java:215)
at com.asiainfo.openboss.crm.cq.PublicAction.StyleTransfer(PublicAction.java:2193)
at com.asiainfo.openboss.crm.cq.PublicAction.ListToRowShow(PublicAction.java:2146)
at com.asiainfo.openboss.crm.cq.PublicAction.ShowByRptOut(PublicAction.java:2091)
at com.asiainfo.openboss.crm.cq.PublicAction.UpdateData(PublicAction.java:2000)
at com.asiainfo.openboss.crm.cq.PublicAction.showAsynSonbrQueryResult(PublicAction.java:1232)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)

到這里應該就可以看到了應用的地方了,所以就請研發立刻進行代碼優化吧。

⑷ 如何手動生成heapmp和javacore文件

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/./heapmp3576.phd
wsadmin>quit

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

⑸ IBM JDK 、SUN JDK、HP JDK如何產生Heapmp文件

SUN JDK生成Heapmp文件只需要在tomcat啟動腳本中增加 HeapDumpOnOutOfMemoryError 參數 此參數需要Java SE release 5.0 update 14 或以上支持設置示例: set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx800m -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreakIBM JDK生成Heapmp文件的開關: — export IBM_HEAPDUMP=true — export IBM_HEAP_DUMP=true — export IBM_HEAPDUMP_OUTOFMEMORY=true — export IBM_JAVADUMP_OUTOFMEMORY=true — export IBM_HEAPDUMPDIR=<directory_path>HP JDK生成Heapmp文件需要在在環境變數上,加上export _JAVA_HEAPDUMP=1

⑹ 如何獲取java heap mp

C:/Program Files/Java/jdk1.6.0_20/bin>jmap
Usage:
jmap -histo <pid>
(to connect to running process and print histogram of java object heap
jmap -mp:<mp-options> <pid>
(to connect to running process and mp java heap)

mp-options:
format=b binary default
file=<file> mp heap to <file>

Example: jmap -mp:format=b,file=heap.bin <pid>

或者,運行jconsole, 選擇 MBeans -> com.sun.management -> HotSpotDiagnostic -> Operations -> mpHeap 在參數p0中填寫保存mp文件的路徑,如果要使用Eclipse Memory Analyzer來分析則文件的後綴要為hprof。點擊mpHeap按鈕生成mp文件。

或者在Eclipse Memory Analyzer中直接生成

或者,設置jvm讓其在out of memory的時候自動生成mp文件: -XX:+HeapDumpOnOutOfMemoryError 或者-XX:+HeapDumpOnCtrlBreak,更多設置見http://wiki.eclipse.org/index.php/MemoryAnalyzer#Getting_a_Heap_Dump

附帶一句,mp文件可以使用Eclipse Memory Analyzer
http://dev.eclipse.org/blogs/memoryanalyzer/2008/04/21/immortal-objects-or-how-to-find-memory-leaks/
http://wiki.eclipse.org/index.php/MemoryAnalyzer#Finding_Memory_Leaks

Finding Memory Leaks
Start by running the leak report to automatically check for memory leaks.
This blog details How to Find a Leaking Workbench Window.
The Memory Analyzer grew up at SAP. Back then, Krum blogged about Finding Memory Leaks with SAP Memory Analyzer. The content is still relevant!
Analyzing Java Collection Usage
Check out Krum's blog about Analyzing Java Collections Usage with Memory Analyzer. Also, Memory for Nothing looks unused collections and the memory kept alive.
Perm Space Issus
A good starting point is the blog The Unknown Generation: Perm by Andreas.
Also, Vedran has blogged some hints how to address Perm Space Issues.

熱點內容
線切割怎麼導圖 發布:2021-03-15 14:26:06 瀏覽:709
1台皮秒機器多少錢 發布:2021-03-15 14:25:49 瀏覽:623
焊接法蘭如何根據口徑配螺栓 發布:2021-03-15 14:24:39 瀏覽:883
印章雕刻機小型多少錢 發布:2021-03-15 14:22:33 瀏覽:395
切割機三五零木工貝片多少錢 發布:2021-03-15 14:22:30 瀏覽:432
加工盜磚片什麼櫸好 發布:2021-03-15 14:16:57 瀏覽:320
北洋機器局製造的銀元什麼樣 發布:2021-03-15 14:16:52 瀏覽:662
未來小七機器人怎麼更新 發布:2021-03-15 14:16:33 瀏覽:622
rexroth加工中心亂刀怎麼自動調整 發布:2021-03-15 14:15:05 瀏覽:450
機械鍵盤的鍵帽怎麼選 發布:2021-03-15 14:15:02 瀏覽:506