`
小网客
  • 浏览: 1217909 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JVM性能调试之jmap

    博客分类:
  • Java
 
阅读更多

jmap 的用途是为了展示java进程的内存映射信息,或者堆内存详情

常用的参数如下:

histo

jmap -histo pid 展示class的内存情况

展示的信息为编号,实例数,字节,类名

例如:

jmap -histo:live 2540

 num     #instances         #bytes  class name
----------------------------------------------
   1:         20981         908120  [C
   2:         21015         504360  java.lang.String
   4:          9999         159984  org.learn.util.User
   5:           312          59216  [Ljava.lang.Object;

 

heap

 

jmap -heap pid 展示pid的整体堆信息

如:

 

$ jmap -heap 29030
JVM version is 16.3-b01

using thread-local object allocation.
Parallel GC with 13 thread(s)

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 8436842496 (8046.0MB)
   NewSize          = 5439488 (5.1875MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 88080384 (84.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 87883776 (83.8125MB)
   used     = 31053080 (29.614524841308594MB)
   free     = 56830696 (54.197975158691406MB)
   35.33425782706469% used
From Space:
   capacity = 13828096 (13.1875MB)
   used     = 196608 (0.1875MB)
   free     = 13631488 (13.0MB)
   1.4218009478672986% used
To Space:
   capacity = 16384000 (15.625MB)
   used     = 0 (0.0MB)
   free     = 16384000 (15.625MB)
   0.0% used
PS Old Generation
   capacity = 156172288 (148.9375MB)
   used     = 27098208 (25.842864990234375MB)
   free     = 129074080 (123.09463500976562MB)
   17.35148299805917% used
PS Perm Generation
   capacity = 88080384 (84.0MB)
   used     = 50847592 (48.492042541503906MB)
   free     = 37232792 (35.507957458496094MB)
   57.728622073218936% used

 对应的说明如下:

 

 

Parallel GC with 13 thread(s)   #13个gc线程

Heap Configuration:#堆内存初始化配置
   MinHeapFreeRatio = 40  #-XX:MinHeapFreeRatio设置JVM堆最小空闲比率
   MaxHeapFreeRatio = 70  #-XX:MaxHeapFreeRatio设置JVM堆最大空闲比率
   MaxHeapSize      = 8436842496 (8046.0MB)#-XX:MaxHeapSize=设置JVM堆的最大大小
   NewSize          = 5439488 (5.1875MB) #-XX:NewSize=设置JVM堆的‘新生代’的默认大小
   MaxNewSize       = 17592186044415 MB  #-XX:MaxNewSize=设置JVM堆的‘新生代’的最大大小
   OldSize          = 5439488 (5.1875MB) #-XX:OldSize=设置JVM堆的‘老生代’的大小
   NewRatio         = 2 #-XX:NewRatio=:‘新生代’和‘老生代’的大小比率
   SurvivorRatio    = 8 #-XX:SurvivorRatio=设置年轻代中Eden区与Survivor区的大小比值
   PermSize         = 21757952 (20.75MB) #-XX:PermSize=<value>:设置JVM堆的‘永生代’的初始大小
   MaxPermSize      = 88080384 (84.0MB) #-XX:MaxPermSize=<value>:设置JVM堆的‘永生代’的最大大小

Heap Usage:
PS Young Generation
Eden Space:#Eden区内存分布
   capacity = 87883776 (83.8125MB)
   used     = 31053080 (29.614524841308594MB)
   free     = 56830696 (54.197975158691406MB)
   35.33425782706469% used
From Space:#其中一个Survivor区的内存分布
   capacity = 13828096 (13.1875MB)
   used     = 196608 (0.1875MB)
   free     = 13631488 (13.0MB)
   1.4218009478672986% used
To Space:#另一个Survivor区的内存分布
   capacity = 16384000 (15.625MB)
   used     = 0 (0.0MB)
   free     = 16384000 (15.625MB)
   0.0% used
PS Old Generation#当前的Old区内存分布
   capacity = 156172288 (148.9375MB)
   used     = 27098208 (25.842864990234375MB)
   free     = 129074080 (123.09463500976562MB)
   17.35148299805917% used
PS Perm Generation#当前的 “永生代” 内存分布
   capacity = 88080384 (84.0MB)
   used     = 50847592 (48.492042541503906MB)
   free     = 37232792 (35.507957458496094MB)
   57.728622073218936% used

dump

 

jmap -dump:<dump-options>  pid 把pid的整体堆信息输出

dump-options:

live

format=b

file=<file>

导出的文件可以供分析用,比如jhat或者mat,以便查找内存溢出原因

例如:

jmap -dump:live,format=b,file=tomcat.bin 29030

 

2
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics