GC常用参数

  • -Xmn -Xms -Xmx -Xss

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

    -Xms -Xmx 一般设置成一样大小,

  • -XX:+UseTLAB

    使用TLAB,默认打开

  • -XX:+PrintTLAB

    打印TLAB的使用情况

  • -XX:TLABSize Thread Local Allocation Buffer

    设置TLAB大小

  • -XX:+DisableExplictGC

    System.gc()不管用 ,FGC

  • -XX:+PrintGC

  • -XX:+PrintGCDetails

  • -XX:+PrintHeapAtGC

  • -XX:+PrintGCTimeStamps

  • -XX:+PrintGCApplicationConcurrentTime (低)

    打印应用程序时间

  • -XX:+PrintGCApplicationStoppedTime (低)

    打印暂停时长

  • -XX:+PrintReferenceGC (重要性低)

    记录回收了多少种不同引用类型的引用

  • -verbose:class

    类加载详细过程

  • -XX:+PrintVMOptions

  • -XX:+PrintFlagsFinal -XX:+PrintFlagsInitial

    必须会用 如

    java -XX:PrintFlagsFinal -version |grep G1 查 G1相关的参数

  • -Xloggc:opt/log/gc.log

  • -XX:MaxTenuringThreshold

    升代年龄,最大值15

  • 锁自旋次数 -XX:PreBlockSpin 热点代码检测参数-XX:CompileThreshold 逃逸分析 标量替换 ...

    这些不建议设置

Parallel常用参数

  • -XX:SurvivorRatio
  • -XX:PreTenureSizeThreshold

    大对象到底多大
  • -XX:MaxTenuringThreshold
  • -XX:+ParallelGCThreads

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

    自动选择各区大小比例

CMS常用参数

  • -XX:+UseConcMarkSweepGC
  • -XX:ParallelCMSThreads

    CMS线程数量
  • -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
  • -XX:MaxGCPauseMillis

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

    ?GC的间隔时间
  • -XX:+G1HeapRegionSize

    分区大小,建议逐渐增大该值,1 2 4 8 16 32。

    随着size增加,垃圾的存活时间更长,GC间隔更长,但每次GC的时间也会更长

    ZGC做了改进(动态区块大小)
  • G1NewSizePercent

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

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

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

    线程数量
  • InitiatingHeapOccupancyPercent

    启动G1的堆空间占用比例

参考马老师的笔记,做整理

JVM笔记-GC常用参数设置的更多相关文章

  1. jvm常用参数设置 good

    1.堆的大小可以通过 -Xms 和 -Xmx 来设置,一般将他们设置为相同的大小,目的是避免在每次垃圾回收后重新调整堆的大小,比如 -Xms=2g -Xmx=2g 或者 -Xms=512m -Xmx= ...

  2. jvm常用参数设置 专题

    在jdk8中 -Xms2g不合法,能通过的:-Xms2G #!/bin/bash JAVA_OPTS="-Xms4G -Xmx4G -XX:+HeapDumpOnOutOfMemoryErr ...

  3. JVM常用参数设置

    堆内存设置 示例: java -Xmx4550m -Xms4550m -Xss128k -XX:NewRatio=5 -XX:SurvivorRatio=5 -Xmx4550m:设置JVM最大可用内存 ...

  4. java jvm内存管理/gc策略/参数设置

    1. JVM内存管理:深入垃圾收集器与内存分配策略 http://www.iteye.com/topic/802638 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想 ...

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

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

  6. JVM调优常用参数

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

  7. JVM调优常用参数总结

    GC通用参数 -Xmn -Xms -Xmx -Xss 年轻代 最小堆 最大堆 栈空间 -XX:+UseTLAB 使用TLAB,默认打开 -XX:+PrintTLAB 打印TLAB的使用情况 -XX:T ...

  8. JVM基础(6)-常用参数总结

    参考文章: 并发编程网:http://ifeve.com/useful-jvm-flags-part-4-heap-tuning/ 一.参数分类 HotSpot JVM 提供了三类参数. 第一类包括了 ...

  9. 深入探究jvm之GC的参数调优

    在上一篇博客记录了GC的算法及种类,这篇博客主要记录一下GC的参数如何调整以提高jvm的性能. 一.堆的回顾: 堆的内存空间总体分为新生代和老年代,老年代存放的老年对象,新构造的对象分配在eden区中 ...

随机推荐

  1. C语言资料分享

    链接:https://pan.baidu.com/s/1hoc0sA0bDAq9XGC0pi2Kcg 提取码:60pn 复制这段内容后打开百度网盘手机App,操作更方便哦 c primer plus下 ...

  2. Mariadb之复制过滤器

    mariadb的主从复制集群,默认情况下是把主库上的所有库进行复制,只要在主库上产生写操作,从库基于主库的二进制日志做重放,从而实现把主库的上的库表复制到从库:复制过滤器指的是我们仅复制一个或几个数据 ...

  3. 状压DP之炮兵阵地

    题目 原题来自:\(NOI 2001\) 司令部的将军们打算在\(N*M\) 的网格地图上部署他们的炮兵部队.一个\(N*M\)的地图由\(N\)行\(M\)列组成,地图的每一格可能是山地(用 H表示 ...

  4. tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)

    | 本文首发于 “生信补给站” https://mp.weixin.qq.com/s/tQt0ezYJj3H7x3aWZmKVEQ 使用tidyverse进行简单的数据处理: 盘一盘Tidyverse ...

  5. C#利用反射实现简单记事本功能插件

    效果图: 源码下载:https://github.com/doyoulaikeme/DotNetSample

  6. postman-4-响应内容

    通过响应报文来检测接口的正确性:响应由正文,响应头和状态码组成 Pretty模式可以格式化JSON或XML响应报文,以便更容易查看.突出显示Pretry模式中的链接,点击它们, 可以通过链接URL在P ...

  7. UDP/TCP 流程与总结

    1 UDP流程 前序:可以借助网络调试助手工具进行使用 1 UDP 发送方 1 创建UDP套接字 2 准备目标(发送方) IP和端口 3 需要发送的数据内容 4 关闭套接字 from socket i ...

  8. Python split分割字符串

    s = input(); str = s.split("-") print("{}+{}".format(str[0],str[-1]))

  9. Idea JAVA开发工具快速上手-常用快捷键汇总

    前言: 之前一直使用Eclipse 系列开发IDE工具,由于eclipse是开源的所以,一般情况,eclipse基本上每一个java入门者的首选开发工具,其次 Myeclipse.不过现在越来越多的人 ...

  10. Maven 专题(五):Maven核心概念详解(一)

    **Maven 的核心程序中仅仅定义了抽象的生命周期,而具体的操作则是由 Maven 的插件来完成的.**可是 Maven 的插件并不包含在 Maven 的核心程序中,在首次使用时需要联网下载. 下载 ...