java jmap jc_jmap命令详解-查看JVM内存使用详情

jmap-heap pid打印heap的概要信息,GC使用的算法,heap(堆)的配置及JVM堆内存的使用情况.

[root@i-5uvhvror bin]# ./jmap -heap 17474

Attaching to process ID 17474, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 25.181-b13

using thread-local object allocation.

Parallel GC with 8 thread(s)

Heap Configuration: #堆配置情况

MinHeapFreeRatio = 0

MaxHeapFreeRatio = 100

MaxHeapSize = 8589934592 (8192.0MB) #最大堆空间大小

NewSize = 2863136768 (2730.5MB) #新生代分配大小

MaxNewSize = 2863136768 (2730.5MB) #最大可新生代分配大小

OldSize = 5726797824 (5461.5MB) #老年代大小

NewRatio = 2 #新生代比例

SurvivorRatio = 8 #新生代与suvivor的比例

MetaspaceSize = 536870912 (512.0MB) #metaspace大小

CompressedClassSpaceSize = 528482304 (504.0MB)

MaxMetaspaceSize = 536870912 (512.0MB) #metaspace可分配最大大小

G1HeapRegionSize = 0 (0.0MB)

Heap Usage: #堆使用情况

PS Young Generation

Eden Space:

capacity = 2857893888 (2725.5MB) #伊甸区容量

used = 804328552 (767.0674819946289MB) #已经使用大

free = 2053565336 (1958.432518005371MB) #剩余容量

28.14410133900675% used #使用占比

From Space: #survior2 区

capacity = 2621440 (2.5MB)

used = 1784824 (1.7021408081054688MB)

free = 836616 (0.7978591918945312MB)

68.08563232421875% used

To Space:

capacity = 2621440 (2.5MB)

used = 0 (0.0MB)

free = 2621440 (2.5MB)

0.0% used

PS Old Generation #老年代使用情况

capacity = 5726797824 (5461.5MB)

used = 240811696 (229.6559295654297MB)

free = 5485986128 (5231.84407043457MB)

4.204997337094748% used

59801 interned Strings occupying 6904760 bytes.

jmap -histo pid  打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

[root@i-5uvhvror bin]# ./jmap -histo 27682

(实例数量) (大小) (类名)

num #instances #bytes class name

----------------------------------------------

1: 14935289 1224780664 [C

2: 3099773 272780024 java.lang.reflect.Method

3: 216090 157035224 [I

4: 5637367 135296808 java.lang.String

5: 3748200 119942400 java.util.HashMap$Node

6: 4382915 100329384 [Ljava.lang.Class;

7: 3321204 79708896 java.lang.StringBuilder

8: 282980 61578112 [Ljava.util.HashMap$Node;

9: 169589 56689056 [B

10: 644178 40819208 [Ljava.lang.Object;

11: 367395 26452440 java.lang.reflect.Field

12: 111191 19611936 [Ljava.lang.reflect.Method;

13: 431776 13816832 java.util.concurrent.locks.AbstractQueuedSynchronizer$Node

14: 393603 9446472 java.util.ArrayList

15: 184022 8833056 java.util.HashMap

16: 111062 7155368 [Ljava.lang.String;

17: 216427 6925664 java.lang.StackTraceElement

18: 184844 5915008 java.util.concurrent.ConcurrentHashMap$Node

19: 138826 5553040 java.util.LinkedHashMap$Entry

20: 331955 5311280 org.apache.ibatis.reflection.invoker.SetFieldInvoker

21: 323366 5173856 org.apache.ibatis.reflection.invoker.GetFieldInvoker

22: 81595 3916560 java.nio.HeapByteBuffer

23: 166872 3897040 [Ljava.lang.reflect.Type;

24: 80682 3872736 java.nio.HeapCharBuffer

25: 118373 3787936 org.apache.ibatis.reflection.property.PropertyTokenizer

26: 151594 3638256 org.apache.ibatis.reflection.invoker.MethodInvoker

27: 5460 3581760 io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue

28: 40038 3185696 [S

29: 52261 2926616 java.util.LinkedHashMap

30: 41287 2642368 java.util.regex.Matcher

31: 17572 2530368 com.mysql.jdbc.Field

Total 42816595 2491201080

采用jmap -histo pid>a.log日志将其保存,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

jmap -dump:format=b,file=outfile 27682可以将27682进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值