jvm调优

做~自己de王妃 提交于 2020-01-30 16:37:25

jvm调优主要是关注吞吐量、停顿时间。

1.获取gc日志
默认使用的是ParallelGC
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:gc.log

2.CMS日志
-XX:+UseG1GC -Xloggc:cms-gc.log

3.G1日志
-XX:+UseG1GC -Xloggc:g1-gc.log

4.GC日志文件分析工具
a.GCViewer
打开gc日志进行分析

b.G1调优指南
是否选用G1垃圾收集器的判断依据
(1)50%以上的堆被存活对象占用
(2)对象分配和晋升的速度变化非常大
(3)垃圾回收时间比较长

c.jvm调优主要是不断调整各类参数,最终选择适合参数,满足最终需求
比如调整内存参数,再次获取gc日志分析
-XX:MetaspaceSize=512M -Xms512M
-Xmx512M

调整最大停顿时间
-XX:MaxGCPauseMillis=25 设置最大GC停顿时间指标

调整堆内存占用百分比
-XX:InitiatingHeapOccupancyPercent=45 G1用它来触发并发GC周期,基于整个堆的使用率,而不只是某一代内存的 使用比例。值为 0 则表示“一直执行GC循环)’. 默认值为 45 (例如, 全部的 45% 或者使用了45%).

5.官方建议
a.不要手动设置新生代和老年代的大小,只要设置整个堆的大小
b.不断调优暂停时间目标
c.使用-XX:ConcGCThreads=n来增加标记线程的数量
d.MixedGC调优
e.适当增加堆内存大小

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!