zoukankan      html  css  js  c++  java
  • JVM调优实战

    JVM实战调优

    jvm不会开启记录GC日志,会影响性能,调优之后,就会关掉GC日志

    JVM调优主要就是调整下面两个指标   减少FGC执行次数,减少FGC执行时间

    停顿时间:垃圾收集器做垃圾回收中断应用执行的时间。-XX:MaxGCPauseMillis

    吞吐量:垃圾收集的时间和总时间的占比:1/(1+n),吞吐量为1-1/(1+n)。-XX:GCTimeRatio=n

    GC调优步骤:

      1.打印GC日志

      -XX:+PrintGCDetails -XX:+PrintGCTimeStamps(在GC日志里面打印出详细时间戳) -XX:+PrintGCDateStamps -Xloggc:./gc.log

      打印GC日志输出到文件内

    Tomcat 则直接加在JAVA_OPTS变量里

      分析日志得到关键性指标

      分析GC原因,调优JVM参数

    1.Parallel Scavenge收集器

    分析日志

    第一次调优:设置Metaspace大小,增大元空间大小-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M  (gceasy推荐调整,元空间大小可以设置的大一些)

    第二次调优:增大年轻代动态扩容增量,默认是20%,可以减少young gc:-XX:YoungGenerationSizeIncrement=30

    2.配置CMS收集器

    -XX:+UseConcMarkSweepGC

    3.配置G1收集器

    -XX:+UseG1GC

    -XX:InitiatingHeapOccupancyPercen:老年代占用空间超过整堆比IHOP阈值(默认45%),超过则执行混合收集

    调优:添加吞吐量和停顿时间参数:-XX:GCTimeRatio=99 -XX:MaxGCPauseMillis=10

    使用https://gceasy.io/上传gc日志,该网站会分析日志文件,给出调优建议

    GC常用参数

    堆栈设置

    -Xss:每个线程的栈大小

    -Xms:初始堆大小,默认物理内存的1/64

    -Xmx:最大堆大小,默认物理内存的1/4

    -Xmn:新生代大小

    -XX:NewSize:设置新生代初始大小

    -XX:NewRatio:默认2表示新生代占老年代的1/2,占整个堆内存的1/3

    并行收集器设置:

    -XX:YoungGenerationSizeIncrement:年轻代gc后扩容比例,默认是20(%)

  • 相关阅读:
    基于php缓存的详解
    Nginx 的 Location 配置指令块
    Nginx负载均衡与反向代理的配置实例
    Linux下mysql定时备份及恢复
    KVO的底层实现
    小谈KVC中KeyPath的集合运算符
    iOS开发中常用的单例
    内存中的5大区域
    需要记住的几个ASCII码
    结构体-内存对齐
  • 原文地址:https://www.cnblogs.com/zpp1234/p/13121921.html
Copyright © 2011-2022 走看看