JVM启动参数配置详解

  • 1. JDK8的JVM启动参数默认配置
  • 2. JDK8的JVM启动参数说明
    • 2.1 基本参数
    • 2.2 G1相关参数
    • 2.3 辅助信息

1. JDK8的JVM启动参数默认配置

-Xms2g -Xmx2g  (按不同容器,4G及以下建议为50%,6G以上,建议设置为70%)
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=512m
-Xss256k
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:AutoBoxCacheMax=20000
-XX:+HeapDumpOnOutOfMemoryError   (当JVM发生OOM时,自动生成DUMP文件)
-XX:HeapDumpPath=/data/logs/gc/
-XX:ErrorFile=/data/logs/gc/hs_err_%p.log   (当JVM发生崩溃时,自动生成错误日志)
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/data/logs/gc/gc-ePrint-service.log

2. JDK8的JVM启动参数说明

2.1 基本参数

2.2 G1相关参数

附:G1GC的详细过程
G1提供了两种GC模式,Young GC和Mixed GC,两种都是Stop The World(STW)的。1. Young GCYoung GC主要是对Eden区进行GC,它在Eden空间耗尽时会被触发。在这种情况下,Eden空间的数据移动到Survivor空间中,如果Survivor空间不够,Eden空间的部分数据会直接晋升到年老代空间。Survivor区的数据移动到新的Survivor区中,也有部分数据晋升到老年代空间中。最终Eden空间的数据为空,GC停止工作,应用线程继续执行。2. Mixed GCMix GC不仅进行正常的新生代垃圾收集,同时也回收部分后台扫描线程标记的老年代分区。
它的GC步骤分2步: 全局并发标记(global concurrent marking) 拷贝存活对象(evacuation)
在进行Mix GC之前,会先进行global concurrent marking(全局并发标记)。 在G1 GC中,它主要是为Mixed GC提供标记服务的,并不是一次GC过程的一个必须环节。global concurrent marking的执行过程分为五个步骤:初始标记(initial mark,STW)在此阶段,G1 GC 对根对象进行标记。该阶段与常规的 (STW) 年轻代垃圾回收密切相关。根区域扫描(root region scan)G1 GC 在初始标记的存活区扫描对老年代的引用,并标记被引用的对象。该阶段与应用程序(非 STW)同时运行,并且只有完成该阶段后,才能开始下一次 STW 年轻代垃圾回收。并发标记(Concurrent Marking)G1 GC 在整个堆中查找可访问的(存活的)对象。该阶段与应用程序同时运行,可以被 STW 年轻代垃圾回收中断最终标记(Remark,STW)该阶段是 STW 回收,帮助完成标记周期。G1 GC 清空 SATB 缓冲区,跟踪未被访问的存活对象,并执行引用处理。清除垃圾(Cleanup,STW)在这个最后阶段,G1 GC 执行统计和 RSet 净化的 STW 操作。在统计期间,G1 GC 会识别完全空闲的区域和可供进行混合垃圾回收的区域。清理阶段在将空白区域重置并返回到空闲列表时为部分并发。Young GC:选定所有新生代里的region。通过控制新生代的region个数来控制young GC的开销。
Mixed GC:选定所有新生代里的region,外加根据global concurrent marking统计得出收集收益高的若干老年代region。在用户指定的开销目标范围内尽可能选择收益高的老年代region。在G1中,有一种特殊的区域,叫Humongous区域。 如果一个对象占用的空间超过了分区容量50%以上,G1收集器就认为这是一个巨型对象。这些巨型对象,默认直接会被分配在年老代。

2.3 辅助信息

JVM启动参数配置详解相关推荐

  1. php-fpm 的参数,php-fpm启动参数配置详解

    pid = run/php-fpm.pid #pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启 error_log = log/php-fpm.log #错误日志,默认在 ...

  2. 【深入理解Hadoop原理】Hadoop 参数配置 详解

    Hadoop 参数配置 详解 一.常用端口 组件 节点 默认端口 配置 用途说明 HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传 ...

  3. Java程序启动参数 -D详解

    概述 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: Set a system property value. If value is a string that contains ...

  4. AspNetCore 启动地址配置详解

    背景 程序在发布部署时候,设置环境ASPNETCORE_URLS不生效,也没在代码里使用UseUrls("xxxx"),启动一直是http://localhost:5000.最后测 ...

  5. 分区启动Grub2配置详解

    本文是一篇关于分区启动的帖子 一. grub.cfg 详解 ( 色红为说明 ) grub.cfg 默以为读只,要修改前先设为可写 sudo chmod +w /boot/grub/grub.cfg s ...

  6. java虚拟机启动参数分类详解

    HotSpot是较新的Java虚拟机技术,用来代替JIT(Just in Time)技术,可以大大提高Java运行的性能.Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢.而该技术将常 ...

  7. Spark性能相关参数配置详解

    随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...

  8. Spark 性能相关参数配置详解-任务调度篇

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...

  9. niginx参数配置详解(转)

    作者:邓永超 链接:https://zhuanlan.zhihu.com/p/38015228 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. configure 参 ...

最新文章

  1. Matlab编程与数据类型 -- M文件的编辑和存储
  2. 3、深入理解计算机系统笔记:程序的机器级表示
  3. 渐进式Web应用程序的深入概述
  4. 开发人员需知的Web缓存知识(转)
  5. ASP.NET,IE6下URL中文乱码问题
  6. Windows服务编写
  7. 谷歌联合 Adobe 发布 Noto 字体【免费下载】
  8. 辽宁省大学生计算机系统与程序设计竞赛,2019CCF大学生计算机系统与程序设计竞赛(华东分赛区)在我校顺利举办...
  9. oracle存储sql片段引入_强大的跨数据库访问组件 UniDAC使用教程:注释和SQL函数...
  10. maven导出项目依赖的jar包
  11. haproxy配置代理tomcat和nginx_Nginx负载均衡配置实例
  12. VPP classify ACL
  13. GD32F103替换STM32F103
  14. 阿里云短信验证码发送
  15. python怎么算列表的平方_总算明了python如何求平方
  16. Interactive Speech and Noise Modeling for Speech Enhancement
  17. 软件工程_0, 软件开发约定
  18. flex布局实现头尾固定,中间内容自适应
  19. (转) 机器学习很有趣Part6:怎样使用深度学习进行语音识别
  20. 微信小程序实现音乐播放器(2)

热门文章

  1. 因子分析(Factor Analysis) 最大似然法
  2. iOS之深入解析YYModel的底层原理
  3. Python数据分析工具
  4. 2023年全国职业技能大赛软件测试之功能测试计划模板
  5. 熬夜爆肝!C++核心STL常用算法汇总整理【2W字干货预警 建议收藏】
  6. linux sybase下载,Sybase ASE 15.7 数据库 云盘下载
  7. ROS与智能机器人技术发展路径探索
  8. CV战士的自我修养1—框选
  9. 艾美捷细胞衰老β-半乳糖苷酶染色试剂盒说明书
  10. C语言基础 - 20230428