原创

Java JVM参数总结

Java启动参数共分为三类:

  • 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
  • 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
  • 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
参数 描述
UseSerialGC 虚拟机运行在client模式下的默认值;使用Serial+SerialOld的收集器组合进行内存回收
UseParallelGC 使用Parallel Scavenge + Serial Old(PS MarkSweep)的收集器组合进行内存回收
UseParNewGC 使用ParNew+SerialOld的收集器组合进行内存回收
UseConcMarkSweepGC 使用ParNew+CMS+SerialOld的收集器组合进行内存回收,SerialOld收集器做为CMS收集器出现ConcurrentModeFailure失败后的后备收集器使用
UseParGC 虚拟机做为server模式下的默认值;使用PararrelScavenge+SerialOld的收集器组合进行内存回收
UseParallelOldGC 使用ParallelScavengl+ParallelOld的收集器组合进行内存回收
SurvivorRadio 新生代中Eden区域和Survivor区域的容量比例,默认8,代表Eden:Survivor=8:1
-XX:PretenureSizeThreshold=3145728 直接晋升到老年代的对象大小为3M,只对Serial和ParNew收集器生效,Parallel Scavenge收集器不识别
MaxTenuringThreshold 晋升到老年代的对象年龄
UseAdaptiveSizePolicy 动态调整Java堆中各个区域的大小以及进入老年代的年龄
HandlePromotionFailure 是否允许分配担保失败,即老年代的剩余空间不足应付新生代的整个Eden和Survivor区的所有对象都存活的极端情况
ParallelGCThreads 设置并行GC时进行内存回收的线程数
GCTime GC时间占总时间的比率,默认99,即允许1%的GC时间。仅在ParallelScavenge收集器时生效
MaxGcPauseMillis 设置GC的最大停顿时间。仅在ParallelScavenge收集器时生效
CMSInitiatingOccupancyFraction 设置CMS收集器在老年代空间被使用多少后触发垃圾收集。默认值为68%,仅在使用CMS收集器时生效
UseCMSCompactAtFullCollection 设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片整理。仅在使用CMS收集器时生效
CMSFullGCsBeforeCompaction 设置CMS收集器在进行若干次垃圾收集后再启动一次内存碎片整理。仅在使用CMS收集器时生效
-Xmx2g JVM堆内存最大值默认64m。当空闲堆内存小于40%时,JVM 就会增大堆内存直到-Xmx 所设置的最大值,可以通过-XX:MinHeapFreeRatio=n 设置其比例。最大可用内存为2g
-Xms2g JVM堆内存最小值,默认3670k。当空闲堆内存大于70%时,JVM 会减少堆内存直到-Xms 所设置的最小值,可以通过-XX:MaxHeapFreeRatio=n 设置其比例。JVM初始内存与最大设置相同,避免gc后JVM动态分配内存
-Xmn1g JVM新生代内存大小,增大新生代后会相应减小老年代大小。此值对系统性能影响较大,Java 官方推荐配置为整个堆大小的3/8。
-Xss256k 每个线程的堆栈大小
-XX:PermSize 永久代初始内存大小
-XX:MaxPermSize 永久代最大内存
-XX:MetaspaceSize 元空间初始内存大小
-XX:MaxMetaspaceSize 元空间最大内存
-XX:MaxDirectMemorySize=5M 设置直接内存大小为5M,默认与堆最大值一样(-Xmx)
-XX:NewRatio 新生代内存与老年代内存的比值,如为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4(jdk1.8,默认2)
-XX:SurvivorRatio 新生代中Eden区与两个Survivor区(from、to)的比值.注意Survivor区有两个.如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5,默认为8
-XX:+PrintGC 输出形式: [GC 118250K->113543K(130112K), 0.0094143 secs] [Full GC 121376K->10414K(130112K), 0.0650971 secs]
-XX:+PrintGCDetails 输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs][GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]
-XX:+PrintGCTimeStamps 可与-XX:+PrintGC -XX:+PrintGCDetails混合使用 输出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]
XX:+PrintGCApplicationStoppedTime 输出形式:Total time for which application threads were stopped: 0.0468229 seconds
-Xloggc:filename 把相关日志信息记录到文件以便分析
-XX:+PrintTLAB 打印TLAB信息
-XX:+HeapDumpOnOutOfMemoryError 设置虚拟机在出现内存溢出异常时 Dump 出当前的内存堆转储快照以便事后进行分析
正文到此结束
本文目录