当前位置:首页 » 激光切割 » 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