使用JMAP dump及分析dump文件

原创 2012年12月28日 15:44:13

查看整个JVM内存状态
jmap -heap [pid]
要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起

查看JVM堆中对象详细占用情况
jmap -histo [pid]

导出整个JVM 中内存信息
jmap -dump:format=b,file=文件名 [pid]

jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况
jhat -J-Xmx1024M [file]
执行后等待console 中输入start HTTP server on port 7000 即可使用浏览器访问 IP:7000

eclipse Memory Analyzer
Eclipse 提供的一个用于分析JVM 堆Dump文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。
http://www.eclipse.org/mat/


kill -3 [pid]
在Linux 上找到Java所在的进程号,然后执行以上命令,线程的相关信息就输出到console


jstack
jstack 是sun JDK 自带的工具,通过该工具可以看到JVM 中线程的运行状况,包括锁等待,线程是否在运行
执行 jstack [pid] ,线程的所有堆栈信息

"http-8080-10" daemon prio=10 tid=x0a949bb60 nid=0x884  waiting for monitor entry [...]

"http-8080-10" 这个线程处于等待状态。 waiting for monitor entry 如果在连续几次输出线程堆栈信息都存在于同一个或多个线程上时,则说明系统中有锁竞争激烈,死锁,或锁饿死的想象。


“http-8080-11” daemon prio=10 tix=xxx nid=xxx in object.wait() [...]
 java.lang.Thread.State:waiting (on object monitor)
该表示http-8080-11的线程处于对象的Wait 上,等待其他线程的唤醒,这也是线程池的常见用法。

“Low Memory Detector”daemon prio=10 tix=xx nid=xxx runnable [...] java.lang.Thread.State:runnable
表示“Low Memory Detector” 的线程处于Runable状态,等待获取CPU的使用权.

 

 

 

 

 

 

 


 

 

 

查看Pid  文件

/proc/18225/status or io 信息

 

jvm系列六:使用JMAP dump及分析dump文件

分析JAVA Application的内存使用时,jmap是一个很实用的轻量级工具。使用jmap可以查看heap空间的概要情况,粗略的掌握heap的使用情况。也可以生成heapdump文件,再使用jh...
  • xybelieve1990
  • xybelieve1990
  • 2016年12月08日 13:10
  • 9848

jmap命令(Java Memory Map)

JDK内置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Process Status To...
  • fenglibing
  • fenglibing
  • 2011年05月11日 14:52
  • 91687

Jmap+MAT 排查内存泄漏

最近在项目中自测的时候(压力测试)遇到内存泄漏的情况,想查看具体是哪个模块甚至哪个类引起的问题,经同事推荐使用Jmap+MAT的组合进行了一次尝试,下面记录一下,以便今后深入学习使用。 这里可以用一个...
  • thjnemo
  • thjnemo
  • 2015年01月25日 20:17
  • 1769

使用jmap dump 分析JVM内存状态

查看整个JVM内存状态 jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致Java 进程挂起...
  • xidiancoder
  • xidiancoder
  • 2017年04月29日 14:25
  • 1755

使用JMAP dump及分析dump文件

其中jmap是java自带的工具 查看整个JVM内存状态  jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起 查...
  • mrxiky
  • mrxiky
  • 2017年07月12日 15:59
  • 569

使用jmap和MAT分析JVM堆内存

我的一台生产环境机器每次运行几天之后就会莫名其妙的宕机,分析日志之后发现在tomcat刚启动的时候内存占用比较少,但是运行个几天之后内存占用越来越大,通过jmap命令可以查询到一些大对象引用没有被及时...
  • alli0968
  • alli0968
  • 2016年09月07日 16:25
  • 6280

java dump文件怎么生成和分析-JMAP用法

java dump文件怎么生成-JMAP用法
  • hemin1003
  • hemin1003
  • 2017年05月08日 17:10
  • 2748

使用JMAP dump及分析dump文件

[Java基础] 使用JMAP dump及分析dump文件 (该砖搬自demoblog的博客,请原谅我这个可耻的搬运工。见到好的文章想要收藏,可是偏偏博主不是csdn的) 转载:http://b...
  • qiaoyl113
  • qiaoyl113
  • 2016年10月31日 16:47
  • 334

jmap的几个操作要慎用

最近中大招了,前一周开始偶尔在线上发现一些请求时长竟长达7秒,甚至在部分时段系统存在周期性的请求失败或者超时,各种招式都使用了还是不知道确定的原因,百思不得其解,头大的很!昨日晚上发现这个问题简直太严...
  • zhangzhaokun
  • zhangzhaokun
  • 2015年01月31日 20:30
  • 4597

使用JMAP dump及分析dump文件

查看整个JVM内存状态  jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起 查看JVM堆中对象详细占用情况 ...
  • wwwxxdddx
  • wwwxxdddx
  • 2016年07月25日 10:31
  • 1201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JMAP dump及分析dump文件
举报原因:
原因补充:

(最多只允许输入30个字)