java8 metaspacesize_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
你假笨的<>:http://lovestblog.cn/blog/2016/10/29/metaspace/
java8 metaspacesize_JVM --- MetaspaceSize理解相关推荐
- java8 metaspacesize_JVM参数MetaspaceSize的误解
前言 昨天谢照东大神在群里提出一个问题:怎么查看Metaspace里具体包含的是什么,起因是他的某个服务设置了-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=5 ...
- 【JAVA8】快速理解Consumer、Supplier、Predicate与Function
快速理解Consumer.Supplier.Predicate与Function 一.前言 这几个接口都处在java.util.function包下,Consumer(消费型),Supplier(供给 ...
- Java8 Stream-深入理解筛选、归约、分组、聚合
文章目录 1. 什么是stream? 2. 如何创建stream? 2.1 空的流 2.2 集合的流 2.3 数组的流 2.4 Stream.builder() 2.5 Stream.generate ...
- 【Java】Java8特性官网学习之Stream的前世今生
前言 最近看了<数据密集型应用系统设计>,间断介绍了 命令式语言和声明式语言的区别 UNIX的 设计哲学 MapReduce编程框架 数据流引擎 函数运算符(函数式编程) 能发现Java8 ...
- Java8特性大全(最新版)
一.序言 Java8 是一个里程碑式的版本,凭借如下新特性,让人对其赞不绝口. Lambda 表达式给代码构建带来了全新的风格和能力: Steam API 丰富了集合操作,拓展了集合的能力: 新日期时 ...
- java个人整理知识点
发展: 1.SE 标准版. 2.EE 企业版,基于SE. 3.ME 已经淘汰. JDK.JRE和JVM: JDK: 称为Java开发工具包( Java Development Kit).Java开发人 ...
- java 8的内存分代改进_java8的内存结构,这一篇文章就够了
在一开始学习java的时候,那时候是在网上看视频,老师就经常提到什么对象分配在堆区,什么在栈区,那时候和理解,后来理解了就想着写一篇文章好好的去梳理一下. 想说一下这篇文章的脉络: 首先,研究java ...
- 答题卡的计分方式_如何建立信用风险模型和记分卡
答题卡的计分方式 We are all aware of, and keep track of, our credit scores, don't we? That all-important num ...
- 技术|Android安装包极限优化
技术|Android安装包极限优化 版权声明 1.本文版权归原作者所有,转载需注明作者信息及原文出处. 2.本文作者:赵裕(vimezhao),永久链接:https://github.com/vi ...
最新文章
- iPhone 13便宜到上热搜!王守义诚不我欺
- DARPA发布战略框架文件旨在 为美国国家安全创建突破性新技术能力
- 老板,请给我多点培养【写给老板的一封信】
- Linux文件与目录的rwx权限
- 新浪博客登录php发,PHP的万能密码登陆
- codeforces 385C Bear and Prime Numbers
- MATLAB R2013 a版及序列号
- elasticsearch安装使用
- “胡焕庸”线 - 中国人口分布地理界线
- 学生成绩字典、获取最高分科目分数python_实例:找出分数最高的学生
- 微信小程序连接蓝牙打印机打印图片示例
- 2016 中兴签约经验
- #今日论文推荐# 阿里达摩院最新FEDformer,长程时序预测全面超越SOTA | ICML 2022
- 不同测序数据应用与基因组组装|Canu
- 【苹果家庭推送iMessage】软件安装应用程序访问HealthKit HomeKit
- 获取cookies(pyppeteer)
- 入门 redux 和 @connect 装饰器
- 阿里云-DataWorks- ODPS SQL开发
- Abracadabra
- 使用wxauto出现ImportError: DLL load failed while importing win32gui: 找不到指定的程序报错的解决方案