linux下java内存泄露定位jstat+jmap+jhat

1.   jstat -gcutil 14331 3s  

 3秒一次监控内存回收情况

  S0     S1     E      O      P     YGC     YGCT    FGC    F

  0.00   9.04  26.16  61.43  99.52    833    6.973    14

  0.00   9.04  26.16  61.43  99.52    833    6.973    14

  0.00   9.04  26.16  61.43  99.52    833    6.973    14

  0.00   9.04  26.16  61.43  99.52    833    6.973    14

  0.00   9.04  26.16  61.43  99.52    833    6.973    14

S0、S1 代表两个Survivor区;

E 代表 Eden 区使用率;

O(Old)代表老年代使用率

P(Permanent)代表永久代使用率

YGC(Young GC)代表Minor GC 次数;

YGCT代表Minor GC耗时;

FGC(Full GC)代表Full GC次数;

FGCT(Full GC)代表Full GC耗时;

GCT代表Minor & Full GC共计耗时。

Java 堆分为新生代老年代,新生代一般划分为三块区域,Eden + From Survivor + To Survivor,Eden 和 Survivor 的内存比为8:1,每次只使用一个Eden 和一个 Survivor 区域,另一个 Survivor 用于复制收集算法回收内存。

对象一般尽量分配到新生代中,而对于大对象(长字符串和大数组)直接分配在老年代中,同时“年龄”长的的对象会从新生代自动晋升到老年代中。

Java 方法区称为永久代,只有 HotSpot 虚拟机才存在永久代。

当 Eden 区域分配不足时,自动发生一次 Minor GC

当发生 Minor GC 时,虚拟机会自动检测(比较)新生代晋升到老年代的对象内存大小和老年代剩余内存大小,如果晋升>剩余,则发生一次Full GC;如果晋升<剩余,则去检测老年代的内存担保 HandlePromotionFailure 是否允许担保失败,如果不允许担保失败,则发生一次Full GC,如果允许失败,则进行一次Minor GC。

2.  jmap -dump:live,file=dumpfile14331 

     jhat dumpfile

[root@ebs-21414 stock]# jhat dumpfile 

Reading from dumpfile...
Dump file created Thu Mar 05 16:45:06 CST 2015
Snapshot read, resolving...
Resolving 264282 objects...
Chasing references, expect 52 dots....................................................
Eliminating duplicate references....................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

Dump file created Thu Mar 05 16:45:06 CST 2015

Snapshot read, resolving...

Resolving 264282 objects...

Chasing references, expect 52 dots....................................................

Eliminating duplicate references....................................................

Snapshot resolved.

Started HTTP server on port 7000

Server is ready.

3. 地址栏里面输入 IP:7000  直接拉到最下面,从这里看出实例引用个数排行,哪里内存泄露

All classes including platform

Show all members of the rootset

Show instance counts for all classes (including platform)

Show instance counts for all classes (excluding platform)

Show heap histogram

Show finalizer summary

Execute Object Query Language (OQL) query

jmap -histo:live pid

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值