项目

一般

简介

v10 企业版 gc性能调优参数

由 he shancai 在 大约 3 年 之前添加

<jvm-options>-XX:+HeapDumpOnOutOfMemoryError</jvm-options> 当JVM发生OOM时,自动生成DUMP文件
<jvm-options>-XX:HeapDumpPath=${com.apusic.aas.instanceRoot}/logs/heap.dump</jvm-options> DUMP文件生成路径
<jvm-options>-Xloggc:${com.apusic.aas.instanceRoot}/logs/gc-%t.log</jvm-options>  设置GC日志的路径,%t 会记录当前日期
<jvm-options>-XX:NumberOfGCLogFiles=10</jvm-options>  设置GC日志的个数
<jvm-options>-XX:GCLogFileSize=20m</jvm-options>  设置GC日志文件多大时,写入下一个GC日志文件中
<jvm-options>-XX:+UseGCLogFileRotation</jvm-options> 开启滚动日志
<jvm-options>-XX:+PrintGCDetails</jvm-options> 输出GC的详细日志
<jvm-options>-XX:+PrintHeapAtGC</jvm-options> 在进行GC的前后打印出堆的信息

<jvm-options>-XX:+UseParNewGC</jvm-options> 设置年轻代为多线程收集。可与CMS收集同时使用。新生代进行并行回收,老年代仍旧使用串行回收。新生代S区任然使用复制算法。操作系统是多核CPU上效果明显,单核CPU建议使用串行回收器。
<jvm-options>-XX:+UseConcMarkSweepGC</jvm-options> 并发标记清除,即使用CMS收集器。它是老年代的收集算法,新生代使用ParNew收集算法。默认关闭
<jvm-options>-XX:+DisableExplicitGC</jvm-options> 配合CMS收集使用(-XX:+UseConcMarkSweepGC),禁止显式执行GC,不允许通过代码来触发GC。如果禁用掉就会导致堆外内存使用一直增长,造成内存泄露。
<jvm-options>-XX:ParallelGCThreads=20</jvm-options> 表示JVM在进行并行GC的时候,用于GC的线程数,-XX:ParallelGCThreads=20,表示配置GC线程数为20