「VJMap」插件体验交流
简介
分代版的jmap(新生代,存活区,老生代),是排查内存缓慢泄露,老生代增长过快原因的利器。因为jmap -histo PID 打印的是整个Heap的对象统计信息,而为了定位上面的问题,我们需要专门查看OldGen对象,和Survivor区大龄对象的工具。
vjmap的原始思路来源于R大的TBJMap ,翻新后支持JDK8,支持Survivor区大龄对象过滤。
注意:因为VJMap的原理,只支持CMS和ParallelGC,不支持G1。
操作指南
Command-Name Command-Description
vjmap vjmap 1.0.9 - prints per GC generation (Eden, Survivor, OldGen) object details of a given process.
Tips:
Usage: vjmap <options> <PID>
Usage: vjmap <options> <executable java path> <coredump file path>
Usage "help vjmap" show options info
Example:
打印整个堆中对象的统计信息,按对象的total size排序:
vjmap -all PID > /tmp/histo.log
推荐,打印老年代的对象统计信息,按对象的oldgen size排序,比-all快很多,暂时只支持CMS:
vjmap -old PID > /tmp/histo-old.log
推荐,打印Survivor区的对象统计信息,默认age>=3
vjmap -sur PID > /tmp/histo-sur.log
推荐,打印Survivor区的对象统计信息,查看age>=4的对象
vjmap -sur:minage=4 PID > /tmp/histo-sur.log
推荐,打印Survivor区的对象统计信息,单独查看age=4的对象:
vjmap -sur:age=4 PID > /tmp/histo-sur.log
在使用该插件的过程中,您是否遇到问题?对插件有什么意见和建议呢?欢迎在本页面交流 ↓
点赞
6613 阅读