一.常用java内存查看命令
jmap -dump:format=b,file=netty.bin PID
打印内存快照
jmap -heap pid
查看内存状态
jmap -histo pid
查看内存对象清单
jmap -histo:live pid
先进行一次FullGC, 再查看内存对象清单
jstat -gcutil pid 1s 2
查看内存堆栈容量状态(以%显示)
jstat -gc pid 1s 2
查看内存堆栈容量状态(以byte显示)
[img]http://dl2.iteye.com/upload/attachment/0114/0417/6fb8e1d7-84b4-394b-be36-ad679b6e2238.png[/img]
----------------------------------------
S0 - survive0 幸存区0, 新生代, eden的交换区0
S1 - survive1 幸存区1, 新生代, eden的交换区1
E - eden 新生代内存
O - old 旧生代内存
P - perm 持久代内存
YGC - 新生代GC次数
YGCT - 新生代GC耗时
FGC - 全局回收(FullGC)次数
FGCT - 全局回收耗时
GCT - YGC和FGC的总耗时
二.常用内存分析工具
1 jconsole jdk自带的内存查看工具
2 jhat - jdk自带一个内存快照(heap)分析工具, 并内置web服务器功能, 能通过web页面展现
3 heapanalyze ibm提供的免费内存快照(heap)分析工具
[img]http://dl2.iteye.com/upload/attachment/0114/0419/92477c02-3743-3d99-b23d-d8638e4e2806.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0114/0421/8c174c8b-7ce6-360d-b929-7152ba2db951.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0114/0423/bbe819ea-61d7-3a8e-98dd-5c63a2e3e0a7.png[/img]
jmap -dump:format=b,file=netty.bin PID
打印内存快照
jmap -heap pid
查看内存状态
jmap -histo pid
查看内存对象清单
jmap -histo:live pid
先进行一次FullGC, 再查看内存对象清单
jstat -gcutil pid 1s 2
查看内存堆栈容量状态(以%显示)
jstat -gc pid 1s 2
查看内存堆栈容量状态(以byte显示)
[img]http://dl2.iteye.com/upload/attachment/0114/0417/6fb8e1d7-84b4-394b-be36-ad679b6e2238.png[/img]
----------------------------------------
S0 - survive0 幸存区0, 新生代, eden的交换区0
S1 - survive1 幸存区1, 新生代, eden的交换区1
E - eden 新生代内存
O - old 旧生代内存
P - perm 持久代内存
YGC - 新生代GC次数
YGCT - 新生代GC耗时
FGC - 全局回收(FullGC)次数
FGCT - 全局回收耗时
GCT - YGC和FGC的总耗时
二.常用内存分析工具
1 jconsole jdk自带的内存查看工具
2 jhat - jdk自带一个内存快照(heap)分析工具, 并内置web服务器功能, 能通过web页面展现
3 heapanalyze ibm提供的免费内存快照(heap)分析工具
[img]http://dl2.iteye.com/upload/attachment/0114/0419/92477c02-3743-3d99-b23d-d8638e4e2806.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0114/0421/8c174c8b-7ce6-360d-b929-7152ba2db951.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0114/0423/bbe819ea-61d7-3a8e-98dd-5c63a2e3e0a7.png[/img]