微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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(%)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐