美文网首页
JVM调优参数

JVM调优参数

作者: 要不再等等 | 来源:发表于2019-05-23 22:15 被阅读0次


    基本参数

    -Xmx1024M  最大堆内存

    -Xms1024M  最小堆内存

    -Xmn2g  年轻代大小

    -Xss128k  每个线程栈的大小

    -XX:NewRatio=4  年轻代(包括Eden和两个Survivor区)和年老代的比值

    -XX:SurvivorRatio=4  年轻代中Eden区与Survivor区的大小比值

    -XX:MaxPermSize=16m 持久代大小

    -XX:MaxTenuringThreshold=0  设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

    -XX:+UseParallelGC:选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集

    -XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等

    -XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集

    -XX:MaxGCPauseMillis=100:设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值

    -XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。

    辅助参数

    -XX:+PrintGC

    [GC 118250K->113543K(130112K), 0.0094143 secs][Full GC 121376K->10414K(130112K), 0.0650971 secs]

    -XX:+PrintGCDetails

    -XX:+PrintGCTimeStamps -XX:+PrintGC

    11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]

    -XX:PrintHeapAtGC  打印GC前后的详细堆栈信息

    参数调优

    场景:响应时间优先

    解答:响应时间快,gc次数就要少,尽量增加年轻代内存,直到接近系统时间响应的限制;年老代设置比较麻烦,如果设置过大,会造成gc收集时间长,如果设置过小,会造成gc次数过多,需要考虑几个因素:1.持久代并发收集次数、2.花在年轻代和年老代的时间比例、3.gc信息

    场景:吞吐量优先

    解答:吞吐量大,一般需要一个大的年轻代和小的老年代,因为吞吐量大,就要求存的少,那么年轻代就会稍大容易回收,老年代稍小,只存放长期对象。

    场景:较小堆引起的碎片

    解答:一般不会出现,正常堆设置的参数不会过小,但是如果过小,由于老年代使用的是并发收集器,标记、清除算法,每次收集后会合并相邻空间,找不到空间则并发收集器停止工作,采用传统的标记、清除算法。出现碎片,要配置采用并发收集器是,对老年代压缩-XX:+UseCMSCompactAtFullCollection以及fullGc多少次后压缩-XX:CMSFullGCsBeforeCompaction=0

    相关文章

      网友评论

          本文标题:JVM调优参数

          本文链接:https://www.haomeiwen.com/subject/tzibzqtx.html