• JVM参数调优


     • GC日志参数

    -XX:+PrintGC
    输出GC日志
    -XX:+PrintGCDetails
    输出GC的详细日志
    -XX:+PrintGCTimeStamps
    输出GC的时间戳(以基准时间的形式)
    -XX:+PrintGCDateStamps
    输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
    -XX:+PrintHeapAtGC
    在进行GC的前后打印出堆的信息
    -Xloggc:../logs/gc.log
    日志文件的输出路径

    • 公共参数

    -Xms

    Heap area size when starting JVM

    启动JVM时的堆内存空间。

    -Xmx

    Maximum heap area size

    堆内存最大限制

    -XX:NewRatio

    Ratio of New area and Old area

    新生代和老年代的占比

    -XX:NewSize

    New area size

    新生代空间

    -XX:SurvivorRatio

    Ratio ofEdenarea and Survivor area

    伊甸园空间和幸存者空间的占比

     

     

     

     

     

     

     

      

     

    • G1参数

    -XX:+UseG1GC 启用 G1 (Garbage First) 垃圾收集器
    -XX:MaxGCPauseMillis

    设置允许的最大GC停顿时间(GC pause time),这只是一个期望值,

    实际可能会超出,可以和年轻代大小调整一起并用来实现。默认是200ms

    -XX:G1HeapRegionSize

    每个分区的大小,默认值是会根据整个堆区的大小计算出来,范围是1M~32M,

    取值是2的幂,计算的倾向是尽量有2048个分区数。比如如果是2G的heap,那region=1M。16Gheap,region=8M

    -XX:MaxTenuringThreshold=n 晋升到老年代的“年龄”阀值,默认值为 15
    -XX:InitiatingHeapOccupancyPercent

    一般会简写IHOP,默认是45%,这个占比跟并发周期的启动相关,当空间占比达到这个值时,

    会启动并发周期。如果经常出现FullGC,可以调低该值,尽早的回收可以减少FullGC的触发,

    但如果过低,则并发阶段会更加频繁,降低应用的吞吐

    -XX:G1NewSizePercent  年轻代最小的堆空间占比,默认是5%
    -XX:G1MaxNewSizePercent 年轻代最大的堆空间占比,默认是60%
    -XX:ConcGCThreads 并发执行的线程数,默认值接近整个应用线程数的1/4
    -XX:G1HeapWastePercent 允许的浪费堆空间的占比,默认是5%。如果并发标记可回收的空间小于5%,则不会触发MixedGC
    -XX:G1MixedGCCountTarget  一次全局并发标记之后,后续最多执行的MixedGC次数。 默认值是8
    -XX:MetaspaceSize 初始化元空间大小,控制发生GC阈值
    -XX:MaxMetaspaceSize 限制元空间大小上限,防止异常占用过多物理内存

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     在JDK1.8版本废弃了永久代,替代的是元空间(MetaSpace),元空间与永久代上类似,都是方法区的实现,他们最大区别是:元空间并不在JVM中,而是使用本地内存。

     元空间有注意有两个参数:

    • MetaspaceSize :初始化元空间大小,控制发生GC阈值
    • MaxMetaspaceSize : 限制元空间大小上限,防止异常占用过多物理内存
  • 相关阅读:
    如何在 Knative 中部署 WebSocket 和 gRPC 服务?
    全球首个开放应用模型 OAM 开源 | 云原生生态周报 Vol. 23
    从零开始入门 K8s | Kubernetes 网络概念及策略控制
    重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源
    成都,我们来啦 | Dubbo 社区开发者日
    一文读懂分布式架构知识体系(内含超全核心知识大图)
    阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布
    可能是国内第一篇全面解读 Java 现状及趋势的文章
    从零开始入门 K8s | 可观测性:监控与日志
    阿里巴巴的云原生与开发者
  • 原文地址:https://www.cnblogs.com/killerqi/p/10930847.html
Copyright © 2020-2023  润新知