ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JVM调优实战

2020-06-13 22:02:32  阅读:259  来源: 互联网

标签:实战 收集器 默认 XX 调优 GC 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(%)

标签:实战,收集器,默认,XX,调优,GC,JVM,日志
来源: https://www.cnblogs.com/zpp1234/p/13121921.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有