3 JVM查看内存命令及问题定位

和自甴很熟 提交于 2019-11-29 12:18:19

1. jstat查看堆内存使用情况

jstat查看堆内存各部分使用量,以及加载类的数量。
命令格式
jstat [-命令选型] [vmid] [时间间隔/毫秒] [查询次数]

1.1 查看class加载情况

[root@localhost bin]# jps
7811 Jps
7725 Bootstrap
[root@localhost bin]# jstat -class 7725
Loaded  Bytes  Unloaded  Bytes     Time   
  3476  7544.4        0     0.0       9.61
  • Loader:加载class数量
  • Bytes:所占用空间大小
  • Unloaded:未加载class数量
  • Bytes:未加载占用空间大小
  • Time:时间

1.2 查看编译情况

[root@localhost bin]# jps
7835 Jps
7725 Bootstrap
[root@localhost bin]# jstat -compiler 7725
Compiled Failed Invalid   Time   FailedType FailedMethod
    2141      0       0     6.99          0 
  • Compiled:编译数量
  • Failed:失败数量
  • Invalid:不可用数量
  • Time:时间
  • FailedType: 失败类型
  • FailedMethod:失败方法

1.3 垃圾回收统一

[root@localhost bin]# jps
7872 Jps
7725 Bootstrap
[root@localhost bin]# jstat -gc 7725
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
832.0  832.0   7.9    0.0    6784.0   1961.1   16880.0    15823.5   24960.0 24218.6 2688.0 2509.4     24    0.479   1      0.025    0.504
#也可以每2秒查询一次,总共查询3次
[root@localhost bin]# jstat -gc 7725 2000 3
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
832.0  832.0   7.9    0.0    6784.0   2031.3   16880.0    15823.5   24960.0 24218.6 2688.0 2509.4     24    0.479   1      0.025    0.504
832.0  832.0   7.9    0.0    6784.0   2031.3   16880.0    15823.5   24960.0 24218.6 2688.0 2509.4     24    0.479   1      0.025    0.504
832.0  832.0   7.9    0.0    6784.0   2031.3   16880.0    15823.5   24960.0 24218.6 2688.0 2509.4     24    0.479   1      0.025    0.504

  • S0C:第一个Survivor区的大小(KB)
  • S1C:第二个Survivor区的大小(KB)
  • S0U:第一个Survivor区的使用大小(KB)
  • S1U:第二个Survivor区的使用大小(KB)
  • EC:Eden区的大小(KB)
  • EU:Eden区的使用大小(KB)
  • OC:Old区大小(KB)
  • OU:Old使用大小(KB)
  • MC:方法区大小(KB)
  • MU:方法区使用大小(KB)
  • CCSC:压缩类空间大小(KB)
  • CCSU:压缩类空间使用大小(KB)
  • YGC:年轻代垃圾回收次数
  • YGCT:年轻代垃圾回收消耗时间
  • FGC:老年代垃圾回收次数
  • FGCT:老年代垃圾回收消耗时间
  • GCT:垃圾回收消耗总时间

2. jmap的使用及内存溢出分析

2.1 查看内存使用情况

[root@localhost bin]# jps
7910 Jps
7725 Bootstrap
[root@localhost bin]# jmap -heap 7725
Attaching to process ID 7725, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.211-b12

using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration: #堆内存配置信息
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 255852544 (244.0MB)
   NewSize                  = 5570560 (5.3125MB)
   MaxNewSize               = 85262336 (81.3125MB)
   OldSize                  = 11206656 (10.6875MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage: #堆内存使用情况
New Generation (Eden + 1 Survivor Space): #新生代
   capacity = 7798784 (7.4375MB)
   used     = 4303832 (4.104454040527344MB)
   free     = 3494952 (3.3330459594726562MB)
   55.185936679359244% used
Eden Space:
   capacity = 6946816 (6.625MB)
   used     = 4295720 (4.096717834472656MB)
   free     = 2651096 (2.5282821655273438MB)
   61.83725033166274% used
From Space:
   capacity = 851968 (0.8125MB)
   used     = 8112 (0.0077362060546875MB)
   free     = 843856 (0.8047637939453125MB)
   0.9521484375% used
To Space:
   capacity = 851968 (0.8125MB)
   used     = 0 (0.0MB)
   free     = 851968 (0.8125MB)
   0.0% used
tenured generation: # 老年代
   capacity = 17285120 (16.484375MB)
   used     = 16203232 (15.452606201171875MB)
   free     = 1081888 (1.031768798828125MB)
   93.74092861374407% used

16599 interned Strings occupying 1478152 bytes.

2.2 查看内存对象数量及大小

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!