堆空间设置:
Xmx(Maximum heap size(in bytes)):
-Xmx4g 进程占用的最大堆空间大小,超出后会OOM
Xms(Initial heap size(in bytes)):
-Xms2g 初始化堆空间大小
Xmn(Maximum new generation size(in bytes)):
-Xmn1g 年轻代大小,官方推荐配置为整个堆的3/8
NewRatio(Ratio of old/new generation sizes):
-XX:NewRatio=n 年轻代和老年代空间大小比值
Xss(Thread Stack Size(in Kbytes)):
-Xss512k 每个线程占用内存大小
SurvivorRatio(Rato of eden/survivor space size):
-XX:SurvivorRatio=n:年轻代中Eden区与Survivor区的比值。比如n=4,则Eden和Survivor比值为4:2,survivor占年轻代一半
MetaspaceSize(JDK1.8以后用于替换PermSize)(Initial size of Metaspaces (in bytes)):
-XX:MetaspaceSize=512m 元空间大小
MaxMetaspaceSize(JDK1.8以后用于替换MaxPermSize)(Maximum size of Metaspaces (in bytes)):
-XX:MaxMetaspaceSize=512m 这个参数用于限制Metaspace增长的上限,防止因为某些情况导致Metaspace无限的使用本地内存
-XX:MinMetaspaceFreeRatio=N
当进行过Metaspace GC之后,会计算当前Metaspace的空闲空间比,如果空闲比小于这个参数,那么虚拟机将增长Metaspace的大小。在本机该参数的默认值为40,也就是40%。设置该参数可以控制Metaspace的增长的速度,太小的值会导致Metaspace增长的缓慢,Metaspace的使用逐渐趋于饱和,可能会影响之后类的加载。而太大的值会导致Metaspace增长的过快,浪费内存
-XX:MaxMetasaceFreeRatio=N
当进行过Metaspace GC之后, 会计算当前Metaspace的空闲空间比,如果空闲比大于这个参数,那么虚拟机会释放Metaspace的部分空间。在本机该参数的默认值为70,也就是70%。
-XX:MaxMetaspaceExpansion=N Metaspace增长时的最大幅度
垃圾收集器设置
UseSerialGC(Use the Serial garbage collector-年轻代使用Serial垃圾收集器):
-XX:+UseSerialGC 设置串行收集器
UseParallelGC(Use the Parallel Scavenge garbage collector-年轻代使用Parallel Scavenge垃圾收集器):
-XX:+UseParallelGC 设置并行收集器
UseParallelOldGC(Use the Parallel Old garbage collector-年轻代使用Parallel Scavenge收集器):
-XX:+UseParalledlOldGC 设置并行年老代收集器
UseConcMarkSweepGC(Use Concurrent Mark-Sweep GC in the old generation-老年代使用CMS收集器(如果出现"Concurrent Mode Failure",会使用SerialOld收集器)):
-XX:+UseConcMarkSweepGC 设置并发收集器
ParallelGCThreads(Number of parallel threads parallel gc will use-并行执行gc的线程数):
-XX:ParallelGCThreads=n 设置并行收集器收集时使用的线程数
MaxGCPauseMillis(Adaptive size policy maximum GC pause time goal in millisecond, or (G1 Only) the maximum GC time per MMU time slice-自适应大小策略的最大GC暂停时间目标(以毫秒为单位),或(仅G1)每个MMU时间片的最大GC时间):
-XX:MaxGCPauseMillis=n 设置并行收集最大暂停时间
-XX:GCTimeRatio=n 设置垃圾回收时间占程序运行时间的百分比,1/(1+n)
DisableExplicitGC(Ignore calls to System.gc()-禁用System.gc()触发FullGC):
-XX:+DisableExplicitGC 禁止外部调用System.gc()
MaxTenuringThreshold(Maximum value fo tenuring threshold-年轻代最大年龄):每个对象在坚持过一次Minor GC之后,年龄就增加1,当超过这个参数值时就进入老年代,最大支持15
-XX:MaxTenuringThreshold 年轻代复制多少次才会进入老年代
垃圾回收统计信息
-XX:+PrintGC
PrintGCDetails(Print more details at garbage collection-GC时打印更多详细信息,默认关闭):
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps 打印每次垃圾回收前,程序未中断的执行时间
-Xloggc:filename 把gc日志存入文件
-XX:+PrintGCApplicationStoppedTime 打印垃圾回收期间程序暂停的时间
-XX:+PrintGCApplicationConcurrentTime 打印每次垃圾回收前,程序未中断的执行时间
-XX:+PrintHeapAtGC 打印GC前后的详细堆栈信息
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/dump