JVM --- MetaspaceSize理解

MetaspaceSize含义
  MetaspaceSize容量触发FGC的阈值。比如-XX:MetaspaceSize=256m,当MetaspaceSize容量超过256M时触发FGC,超过设定阈值后MetaspaceSize每扩容一次触发一次FGC;

默认值
  查看命令如下,默认值大约20.8m;

jinfo -flag MetaspaceSize pid
1
设置建议
MetaspaceSize和MaxMetaspaceSize设置一样大;
MetaspaceSize值建议设置为应用稳定运行后1.2-1.5倍;
查看应用各分区大小命令:

jstat -gc pid
1


JDK8 MetaspaceSize VS JDK7 PermSize
MetaspaceSize设定了触发FGC的阈值,实际使用内存按需分配;
PermSize设定了永久代使用的空间大小,JVM启动时全部分配;
触发FGC使用回收算法
  使用Old区配置或默认的回收算法

MetaspaceSize GC日志
Java HotSpot(TM) 64-Bit Server VM (25.65-b01) for linux-amd64 JRE (1.8.0_65-b17), built on Oct  6 2015 17:16:12 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 131779324k(10823664k free), swap 0k(0k free)
CommandLine flags: -XX:GCLogFileSize=10485760 -XX:InitialHeapSize=2147483648 -XX:MaxHeapSize=2147483648 -XX:NumberOfGCLogFiles=3 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseGCLogFileRotation -XX:+UseParallelGC
2019-01-30T19:44:18.457+0800: 3.978: [GC (Metadata GC Threshold) [PSYoungGen: 461835K->16112K(611840K)] 461835K->16200K(2010112K), 0.3931600 secs] [Times: user=0.51 sys=0.02, real=0.39 secs]
2019-01-30T19:44:18.851+0800: 4.371: [Full GC (Metadata GC Threshold) [PSYoungGen: 16112K->0K(611840K)] [ParOldGen: 88K->14990K(1398272K)] 16200K->14990K(2010112K), [Metaspace: 20500K->20498K(1067008K)], 0.5014104 secs] [Times: user=0.71 sys=0.03, real=0.50 secs]
2019-01-30T19:44:24.355+0800: 9.876: [GC (Allocation Failure) [PSYoungGen: 524800K->16789K(611840K)] 539790K->31788K(2010112K), 0.0201253 secs] [Times: user=0.14 sys=0.01, real=0.02 secs]
2019-01-30T19:44:26.057+0800: 11.578: [GC (Metadata GC Threshold) [PSYoungGen: 306769K->18447K(611840K)] 321768K->33453K(2010112K), 0.1999213 secs] [Times: user=0.33 sys=0.05, real=0.20 secs]
2019-01-30T19:44:26.257+0800: 11.778: [Full GC (Metadata GC Threshold) [PSYoungGen: 18447K->0K(611840K)] [ParOldGen: 15006K->24189K(1398272K)] 33453K->24189K(2010112K), [Metaspace: 34427K->34427K(1079296K)], 0.2967989 secs] [Times: user=0.60 sys=0.01, real=0.30 secs]
2019-01-30T19:44:30.564+0800: 16.084: [GC (Allocation Failure) [PSYoungGen: 524800K->8554K(611840K)] 548989K->32751K(2010112K), 0.0120064 secs] [Times: user=0.11 sys=0.02, real=0.01 secs]
2019-01-30T19:44:35.154+0800: 20.675: [GC (Allocation Failure) [PSYoungGen: 533354K->12328K(611840K)] 557551K->36534K(2010112K), 0.0101480 secs] [Times: user=0.13 sys=0.01, real=0.01 secs]
2019-01-30T19:44:42.964+0800: 28.484: [GC (Allocation Failure) [PSYoungGen: 537128K->15493K(678400K)] 561334K->39707K(2076672K), 0.3960979 secs] [Times: user=0.74 sys=0.03, real=0.39 secs]
2019-01-30T19:44:51.856+0800: 37.377: [GC (Allocation Failure) [PSYoungGen: 672901K->20467K(677888K)] 697115K->45186K(2076160K), 0.2940298 secs] [Times: user=0.38 sys=0.03, real=0.29 secs]
2019-01-30T19:45:00.491+0800: 46.011: [GC (Allocation Failure) [PSYoungGen: 677875K->20974K(667648K)] 702594K->49184K(2065920K), 0.0700194 secs] [Times: user=0.18 sys=0.04, real=0.07 secs]
2019-01-30T19:45:03.267+0800: 48.787: [GC (Metadata GC Threshold) [PSYoungGen: 254075K->23468K(670208K)] 282284K->51685K(2068480K), 0.2873181 secs] [Times: user=0.43 sys=0.01, real=0.29 secs]
2019-01-30T19:45:03.555+0800: 49.075: [Full GC (Metadata GC Threshold) [PSYoungGen: 23468K->0K(670208K)] [ParOldGen: 28217K->41916K(1398272K)] 51685K->41916K(2068480K), [Metaspace: 56641K->56641K(1101824K)], 2.2062810 secs] [Times: user=4.30 sys=0.10, real=2.20 secs]
2019-01-30T19:45:11.071+0800: 56.591: [GC (Allocation Failure) [PSYoungGen: 646656K->9385K(670208K)] 688572K->51310K(2068480K), 0.0079215 secs] [Times: user=0.07 sys=0.00, real=0.01 secs]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
参考:

https://www.jianshu.com/p/b448c21d2e71
你假笨的<<JVM源码分析之Metaspace解密>>:http://lovestblog.cn/blog/2016/10/29/metaspace/
 

转载于:https://my.oschina.net/xiaominmin/blog/3066090

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值