最近在学习有关jvm参数的设置,把它记录下来方便查看
1.堆分配参数总结
-Xms<> 设置Java应用程序启动时的初始堆大小
-Xmx<> 设置Java应用程序能获得的最大堆大小
-Xss<> 设置线程栈的大小
-XX:MinHeapFreeRatio=<> 设置堆空间最小空闲比例。当堆空间的空闲内存小于这个数值时,JVM便会扩展堆空间
-XX:MaxHeapFreeRatio=<> 设置堆空间的最大空闲比例。当堆空间的空闲内存大于这个数值时,便会压缩堆空间,得到一个较小的堆。
-XX:NewSize=<> 设置新生代的大小
-XX:NewRatio=<> 设置老年代与新生代的比例,它等于老年代大小除以新生代大小。
-XX:SurvivorTatio=<> 新生代中eden区与survivor区的比例
-XX:MaxPermSize=<> 设置最大的持久区大小
-XX:PermSize=<> 设置永久去的初始值
-XX:TargetSurvivorTatio=<> 设置survivior区的可使用率,当survivior区的空间使用率达到这个数值时,会将对象送入老年代
2.GC相关的参数总结
1).与串行回收器相关的参数
-XX:+UserSerialGC 在新生代和老年代使用串行收集器
-XX:+SurvivorRatio=<> 设置eden区大小和survivor区大小的比例
-XX:+PretenureSizeThreshold =<> 设置大对象直接进入老年代的阀值。当对象的大小超过这个值时,将直接在老年代分配。-XX:+MaxTenuringThreshold=<> 设置对象进入老年代的年龄的最大值,每一次Minor GC后,对象的年龄就加1,任何大于这个年龄的对象,一定会进入老年代.
2).与并行GC相关的参数
-XX:+UseParNewGC 在新生代使用并行收集器/老年代串行
-XX:+UseParallelOldGC 老年代使用并行回收收集器/新生代并行
-XX:ParallelGCThreads 设置用于垃圾回收的线程数,通常情况下可以和cpu数量相等,但在cpu数量比较多的情况下,设置相对较小的数值也是合理的.
-XX:MaxGCPauseMillis 设置最大垃圾收集停顿时间。它的值是一个大于0的整数。收集器在工作时,会调整Java堆大小或者其他一些参数,尽可能的把停顿时 间控制在MaxGCPauseMillis以内.
-XX:GCTimeRatio 设置吞吐量大小,它的值是一个0-100之间的整数,假设GCTimeRatio的值为n,那么系统将花费不超过1/(1+n)的时间用于垃圾收集.
-XX:+UseAdaptiveSizePolicy 打开自适应GC策略,在这种模式下,新生代的大小,eden和survivor的比例,晋升老年代的对象年龄等参数会被自动调整,以达到在堆大小,吞吐量和停顿时间之间的平衡点.
3).与CMS回收器相关的参数
-XX:+UseConcMarkSweepGC 新生代使用并行收集器,老年代使用CMS+串行收集器
-XX:ParallelCMSThreads 设置CMS的线程数量
-XX:CMSInitiatingOccupancyFraction 设置CMS收集器在老年代空间被使用多少后触发。默认为68%
-XX:+UseCMSCompactAtFullCollection 设置CMS收集器在完成垃圾收集器后是否要进行一次内存碎片的整理.
-XX:CMSFullGCsBeforeCompaction 设定进行多少次CMS垃圾回收后,进行一次内存压缩。
-XX:+CMSClassUnloadingEnabled 允许对类元数据进行回收
-XX:+CMSParallelRemarkEnabled 启动并行重标记
-XX:CMSInitiatingPermOccupancyFraction 当永久区占用率达到这个百分比时,启动CMS回收(前提是 -XX:+CMSClassUnloadingEnabled 激活了)
-XX:UseCMSInitiationgOccupancyOnly 表示只在到达阀值的时候,才进行CMS回收.
-XX:+CMSIncrementalMode 使用增量模式,比较适合单cpu
4).与G1回收器相关的参数
-XX:+UseG1GC 使用G1回收器
-XX:+UnlockExperimentalVMOptions 允许使用实验性参数
-XX:MaxGCPauseMillis 设置最大垃圾收集停顿时间
-XX:GCPauseIntervalMillis 设置停顿间隔时间
5).其他参数
-XX:+DisableExplicitGc 禁用显示GC
-XX:HeapDumpPath 可以指定堆快照的保存位置
-XX:+HeapDumpOnOutOfMemoryError 保存堆快照
-XX:OnOutOfMemoryError=c:\xxxx.bat 当jvm发生OOM错误时,会运行一段第三方脚本.