导航:首页 > 文件教程 > 生成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文件相关的资料

热点内容
微信动态表情包搞笑 浏览:436
可以去哪里找编程老师问问题 浏览:608
win10lol全屏 浏览:25
qq图片动态动漫少女 浏览:122
sai绘图教程视频 浏览:519
如何分析加载减速法数据 浏览:672
手机怎么免费转换pdf文件格式 浏览:668
在哪个网站可以驾照年检 浏览:89
iphone可以播放ape吗 浏览:991
matlabp文件能破解吗 浏览:817
四川省高三大数据考试是什么 浏览:457
导出打开java文件 浏览:671
win10蓝屏是硬盘坏了么 浏览:46
沈阳哪里适合学编程 浏览:811
django19常用版本 浏览:521
三国志11保存在哪个文件夹 浏览:88
iphone4s加速 浏览:108
编程内存和显卡哪个重要 浏览:672
android连接网络打印机 浏览:195
linuxsftp如何上传文件 浏览:603

友情链接