• JVM调优GC常用参数


    JVM的命令行参数参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

    HotSpot参数分类

    标准: - 开头,所有的HotSpot都支持
    非标准:-X 开头,特定版本HotSpot支持特定命令
    不稳定:-XX 开头,下个版本可能取消
    java -version
    java -X

    GC常用参数

    • -Xmn -Xms -Xmx -Xss
      年轻代 最小堆 最大堆 栈空间
    • -XX:+UseTLAB
      使用TLAB,默认打开
    • -XX:+PrintTLAB
      打印TLAB的使用情况
    • -XX:TLABSize
      设置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
      必须会用
    • -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的堆空间占用比例
  • 相关阅读:
    AD域服务器的部署 【1】— AD域介绍
    Docker 设置http代理
    在Django中将SQLite3数据库迁移到MySQL
    pycharm远程更新代码到远端服务器
    这个看着更好。Docker中使用MySQL
    docker换成最好用的源
    docker基础命令
    在docker中运行mysql实例
    centos7安装mysql
    centos 7 修改ip
  • 原文地址:https://www.cnblogs.com/farmersun/p/12439969.html
Copyright © 2020-2023  润新知