JVM参数调优
Posted javagogo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM参数调优相关的知识,希望对你有一定的参考价值。
java内存结构
一、垃圾回收机制
堆内存分为:新生代,老年代
默认比例: 1:2
新生代:刚出生不久的对象,存放在新生代里面,存放不是经常使用的对象
老年代:存放比较活跃的对象,存放经常被引用的对象
垃圾回收机制回收在新生代比较频繁,老年代回收的次数比较少。
二、jvm参数调优
常见参数配置
-XX:+PrintGC 每次触发GC的时候打印相关日志
-XX:+UseSerialGC 串行回收
-XX:+PrintGCDetails 更详细的GC日志
-Xms 堆初始值
-Xmx 堆最大可用值
-Xmn 新生代堆最大可用值
-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例.
-XX:NewRatio 配置新生代与老年代占比1:2
含以-XX:SurvivorRatio=eden/from=den/to
总结:在实际工作中,我们可以直接将初始的堆大小与最大堆大小相等,
这样的好处是可以减少程序运行时垃圾回收次数,从而提高效率。
-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例.
三、调优总结
吞吐量:是一台服务器每秒能够相应的查询次数
垃圾回收次数和设置最大堆内存大小无关,只和初始内存有关系。
初始内存会影响吞吐量
堆的初始值和最大堆内存一致,并且初始堆越大就会高。
初始堆值和最大堆内存内存越大,吞吐量就越高。
最好使用并行收集器,因为并行收集器速度比串行吞吐量高,速度快。
设置堆内存新生代的比例和老年代的比例最好为1:2或者1:3。
减少GC对老年代的回收。
以上是关于JVM参数调优的主要内容,如果未能解决你的问题,请参考以下文章