GC通用参数

  • -Xmn -Xms -Xmx -Xss

    年轻代 最小堆 最大堆 栈空间

  • -XX:+UseTLAB

    使用TLAB,默认打开

  • -XX:+PrintTLAB

    打印TLAB的使用情况

  • -XX:TLABSize

    设置TLAB大小(一般不建议改动)

  • -XX:+DisableExplictGC

    线上环境一定要打开,避免写System.gc(),开启的话手动gc就不管用 ,FGC

  • -XX:+PrintGC

    开启打印GC日志

  • -XX:+PrintGCDetails

    打印GC详细信息

  • -XX:+PrintHeapAtGC

    打印在发生GC时候的堆信息

  • -XX:+PrintGCTimeStamps

    打印GC的时间

  • -XX:+PrintGCApplicationConcurrentTime

    (重要性低) 打印应用程序时间

  • -XX:+PrintGCApplicationStoppedTime

(重要性低) 打印暂停时长

  • -XX:+PrintReferenceGC

    (重要性低) 记录回收了多少种不同引用类型的引用

  • -verbose:class

    类加载详细过程

  • -XX:+PrintVMOptions

    打印JVM详细参数

  • -XX:+PrintFlagsFinal -XX:+PrintFlagsInitial

    必须会用,java -XX:+PrintFlagsFinal -version | grep G1

  • -Xloggc:opt/log/gc.log

  • -XX:MaxTenuringThreshold

    设置升代年龄,最大值15

  • -XX:PreBlockSpin

    锁自旋次数 ,热点代码检测参数

  • -XX:CompileThreshold

    逃逸分析 标量替换 ... 这些不建议设置

Parallel常用参数

  • -XX:SurvivorRatio

    新生代中Eden区域和Survivor区域(From幸存区或To幸存区)的比例,默认为8

  • -XX:PreTenureSizeThreshold

    大对象到底多大

  • -XX:MaxTenuringThreshold

    进入老年代的年龄阈值,默认15(对象被复制的次数)

  • -XX:+ParallelGCThreads

    并行收集器的线程数,同样适用于CMS,一般设为和CPU核数相同

  • -XX:+UseAdaptiveSizePolicy

    自动选择各区大小比例

CMS常用参数

  • -XX:+UseConcMarkSweepGC

    开启CMS垃圾回收

  • -XX:ParallelCMSThreads

    设置CMS线程数量,一般为CPU核数的一半,CMS线程是在老年代,要留一些CPU给用户线程

  • -XX:CMSInitiatingOccupancyFraction

    使用多少比例的老年代后开始CMS收集,默认是68%(近似值),如果频繁发生SerialOld卡顿,应该调小,(频繁CMS回收)

  • -XX:+UseCMSCompactAtFullCollection

    在FGC时进行压缩

  • -XX:CMSFullGCsBeforeCompaction

    多少次FGC之后进行压缩

  • -XX:+CMSClassUnloadingEnabled

  • -XX:CMSInitiatingPermOccupancyFraction

    达到什么比例时进行Perm回收

  • GCTimeRatio

    设置GC时间占用程序运行时间的百分比

  • -XX:MaxGCPauseMillis

    停顿时间,是一个建议时间,GC会尝试用各种手段达到这个时间,比如减小年轻代

G1常用参数

  • -XX:+UseG1GC

    开启G1垃圾回收

  • -XX:MaxGCPauseMillis

    建议值,G1会尝试调整Young区的块数来达到这个值

  • -XX:+G1HeapRegionSize

    分区大小,建议逐渐增大该值,1 2 4 8 16 32。 随着size增加,垃圾的存活时间更长,GC间隔更长,但每次GC的时间也会更长 ZGC做了改进(动态区块大小)

  • G1NewSizePercent

    新生代最小比例,默认为5%

  • G1MaxNewSizePercent

    新生代最大比例,默认为60%

  • GCTimeRatio

    GC时间建议比例,G1会根据这个值调整堆空间

  • ConcGCThreads

    线程数量

  • InitiatingHeapOccupancyPercent

    启动G1的堆空间占用比例

JVM调优常用参数总结的更多相关文章

  1. JVM调优常用参数和注意点备忘录

    本文主要是工作过程中总结的一些jvm调优的参数和注意的地方,作为一个备忘录,先占个坑,有时间在来细化具体的实例. gc日志是覆盖的方式如果文件名字固定会导致上一次被覆盖可以采用这个-Xloggc:ba ...

  2. JVM调优常用参数配置

    堆配置 -Xms:初始堆大小 -Xms:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值.如:为3表示年轻代和年老代比值为1:3,年轻代占 ...

  3. JVM调优常用参数

    JVM常用参数配置 -Xmx2048m 最大堆大小 -Xms1024m 初始堆大小 -Xmn1024m 年轻代大小 -XX:SurvivorRatio=8 Eden区与Survivor区的大小比值,设 ...

  4. JVM调优及参数设置

    (1)参数 -Xms:初始堆大小 -Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存 -Xmn :年轻代大小 整个堆大小=年轻代大小 + 年老代大小 + 持 ...

  5. jvm调优具体参数配置

    3.JVM参数 在JVM启动参数中,可以设置跟内存.垃圾回收相关的一些参数设置,默认情况不做任何设置JVM会工作的很好,但对一些配置很好的Server和具体的应用必须仔细调优才能获得最佳性能.通过设置 ...

  6. JVM调优-GC参数

    一.Throughput收集器(吞吐量)-XX:+UseParallelGC-XX:+UseParallelOldGC *参数调整:通过调整堆大小,减少GC停顿时间,增大吞吐量增强堆大小可以减少Ful ...

  7. (转)JVM调优常用命令(jstat、jmap、jstack)

    原文:https://www.cnblogs.com/ityouknow/p/5714703.html 一.jstat jstat(JVM statistics Monitoring)是用于监视虚拟机 ...

  8. java面试-JVM调优和参数配置,如何查看JVM系统参数默认值

    一.JVM的参数类型: 1.标配参数: java -version java -help 2.X参数: -Xmixed 混合模式(先编译后执行) -Xint  解释执行 -Xcomp 第一次使用就编译 ...

  9. JVM调优篇

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 基础概念 一般JVM调优,重点在于调整JVM堆大小.调整垃圾回收器 jv ...

随机推荐

  1. 初学WebGL引擎-BabylonJS:第1篇-基础构造

    继续上篇随笔 步骤如下: 一:http://www.babylonjs.com/中下载源码.获取其中babylon.2.2.js.建立gulp项目

  2. webdriver实现简单的窗口切换

    webdriver实现简单的窗口切换,也只能是简单的,因为目前处于学习阶段,复杂的情况现在还没碰到过.之前写过关于一个小demo的总结,就有提到过在新开窗口进行操作的情况,用以下一句就可以搞定了,la ...

  3. 面试【JAVA基础】其他

    1.自定义注解 @target 说明了Annotation所修饰的对象范围: constructor.method.field.package.type等等. @retention 定义了该Annot ...

  4. 【python】迭代器与生成器到底是什么?看完你就知道

    迭代器跟生成器,与上篇文章讲的装饰器一样,都是属于我的一个老大难问题. 通常就是遇到的时候就去搜一下,结果在一大坨各种介绍博客中看了看,回头又忘记了. 你是不是也是这样呢? 俗话说:好记性不如烂笔头, ...

  5. shell小技巧(7)shell运行调试

    可以在sh内使用set -x,使用后,会打印每条命令的输出 在shell中设置 set -x 开启 set +x 关闭 也可以在执行脚本时加参数 sh -x *.sh

  6. 转载:把你的精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架构,微服务,以及相关的项目管理等等,这样你的核心竞争力才会越来越高

    https://developer.51cto.com/art/202001/608984.htm 把你的精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架 ...

  7. ui自动化---WebDriverApi接口

    一.webdriver client原理 当测试脚本启动Chrome的时候,selenium-webdriver 会首先在新线程中启动Chrome浏览器.启动后selenium-webdriver会将 ...

  8. postman -- 环境变量、全局变量使用

    背景: [登录接口]中会返回sign值,[学生金币充值接口]会则需要用到该sign值,因此把sign设置为环境或全局变量,便于其他接口调用. 1.请求登录接口,获取sign值: 2.把sign值添加至 ...

  9. 内存管理初始化源码2:setup_arch

    PFN相关宏说明: /* kernel/include/linux/pfn.h */ PFN : Page Frame Number(物理页帧) /* * PFN_ALIGN:返回地址x所在那一页帧的 ...

  10. 原生post请求

    ajax: function(opt) { opt = opt || {}; opt.method = opt.method.toUpperCase() || 'POST'; opt.url = op ...