使用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 信息

 

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

java dump文件怎么生成-JMAP用法
  • hemin1003
  • hemin1003
  • 2017-05-08 17:10:34
  • 6322

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:00
  • 96600

使用jmap和MAT分析JVM堆内存

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

[Java基础] 使用JMAP dump及分析dump文件

原文:http://www.cnblogs.com/0616--ataozhijia/p/4136312.html 其中jmap是java自带的工具 查看整个JVM内存状态  jmap -hea...
  • mmoooodd
  • mmoooodd
  • 2017-05-16 10:28:56
  • 599

使用jmap dump 分析JVM内存状态

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

jvm系列五:监测命令(jvisualvm jps jstat jmap jhat jstack jinfo)及dump堆内存快照分析

运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer...
  • xybelieve1990
  • xybelieve1990
  • 2016-12-08 13:10:45
  • 11004

利用JMAP+MAT分析Java Heap Dump

如果你的Heap Dump文件超过了几百MB,那就不要再寄希望于jhat了,因为jhat需要数倍于dump文件的内存。这个时候你可以用MAT(Memory Analyzer),用MAT你可以在有2GB...
  • lzs45
  • lzs45
  • 2012-03-29 16:47:57
  • 5684

用jvisualvm分析dump文件

最近有一个java服务的堆内存溢出,然后僵死了,在重启服务之前用jmap命令生成了一份dump文件便于后面分析。 生成dump文件的命令: jmap -dump:format=b,file=20170...
  • lkforce
  • lkforce
  • 2017-03-08 19:10:21
  • 9126

jmap的几个操作要慎用

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

JVM性能调优之生成堆的dump文件

最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。 一、JVM内存模型及垃圾收集算法  1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代)T...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2014-07-20 15:25:25
  • 43962
收藏助手
不良信息举报
您举报文章:使用JMAP dump及分析dump文件
举报原因:
原因补充:

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