Jvm启动参数整理

来源:互联网 发布:linux 程序运行权限 编辑:程序博客网 时间:2024/04/30 08:54

以-X开头的都是非标准的(这些参数并不能保证在所有的JVM上都被实现),而且如果在新版本有什么改动也不会发布通知.
以-XX开头的都是不稳定的并且不推荐在生产环境中使用。这些参数的改动也不会发布通知。
使用java -XX:+PrintFlagsFinal 查看虚拟机的参数列表和值。参数的使用说明:

  • -XX:+option 开启option参数
  • -XX:-option 关闭option参数
  • -XX:option=value 将option参数设置为value

最常用的几个参数

参数名 使用说明 Xms 设置 Java 堆的初始化大小 Xmx 设置 Java 堆最大值大小 Xss 设置Java虚拟机栈大小 Xmn 设置年轻代大小 -XX:PermSize 设置持久代(perm gen)初始值 -XX:MaxPermSize 设置持久代最大值

内存管理参数

摘自《深入理解java虚拟机》一书,后续多研究研究

参数名 默认值 使用说明 DisableExplicitGC 默认关闭 忽略来自System.gc()方法触发的垃圾收集 ExplicitGCInvokesConcurrent 默认关闭 当收到System.gc()方法提交的垃圾手机申请时,使用CMS收集器进行收集 UseSerialGC Client模式的虚拟机默认开启,其他模式关闭 虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收 UseParNewGC 关闭 打开此开关,使用ParNew+Serial Old的收集器组合进行内存回收 UseConcMarkSweepGC 关闭 打开此开关,使用ParNew+CMS+Serial Old的收集器组合进行内存回收,Serial Old为后备回收器 UseParallelGC Server默认开启,其他关闭 打开此开关后,使用Paralell Scavenge+Serial Old的收集器组合进行内存回收 UseParallelOldGC 关闭 打开此开关后,使用Parallel Scavenge +Parallel Old的收集器组合进行回收 PretenureSizeThreshold 无 直接晋升到老年代对象的大小 MaxTenuringThreshold 15 晋升到老年代的对象年龄,一个对象坚持过一次Minor GC之后,年龄加一,到该值后,晋升到老年代 UseAdaptiveSizePolicy 开启 动态调整Java堆中各个区域的大小及进入老年代的年龄 SurvivorRadio 默认值为8 新生代中Eden区域与Survivor区域的容量比值,新生代由一块Eden与两块Survivor组成。 GCTimeRatio 99 GC时间比率,只用于Parallel Scavenge,即GC占用CPU:1/(1+99)的时间 MaxGCPauseMillis 无 设置GC最大停顿时间,仅在使用Parallel Scavenge时生效 CMSInitiatingOccupancyFraction 68 设置CMS收集器在老年代空间被使用多少后触发垃圾回收,仅在使用CMS时生效(可以适当调大) UseCMSCompactAtFullCollection 开启 设置CMS收集器在完成垃圾回收后是否要进行一次内存碎片整理,仅在使用CMS时生效 CMSFullGCsBeforeCompaction 无 设置CMS收集器在进行若干次垃圾回收后在启动一次内存碎片整理,仅在使用CMS时生效 ScavengeBeforeFullGC 开启 在进行Full GC之前进行一次Minor GC UseGCOverheadLimit 开启 禁止GC无限制的进行,如果过于频繁就直接发生OutOfMemory UseTLAB server默认开启 优先在本地线程缓冲区中分配对象,避免分配内存时的锁定过程 MaxHeapFreeRatio 70 当Xmx值比Xms值大时,堆可以动态的收缩和扩展,这个参数控制当堆空间大于指定比率时自动收缩 MaxHeapFreeRatio 40 当堆空间小于这个比率时自动扩展

调优参数

这里面的部分信息可以直接在JConsole或者VisualVM中查看

参数名 默认值 使用说明 HeapDumpOnOutOfMemoryError 关闭 在发生内存溢出异常时是否生成堆转储快照,关闭不会生成 HeapDumpPath 无 转储文件位置 OnOutOfMemoryError 无 在发生内存溢出异常时,执行指定的命令 OnError 无 当虚拟机抛出Error异常时,执行指定命令 PrintCommandLineFlags 关闭 打印启动虚拟机时输入的非稳定参数 PrintCompilation 关闭 打印方法即时编译信息 PrintGC 关闭 打印GC信息 PrintGCDetails 关闭 打印GC详细信息 PrintGCTimeStamps 关闭 打印GC停顿耗时 PrintTenuringDistribution 关闭 打印GC后新生代各个年龄对象的大小 TraceClassLoading 关闭 打印类加载信息 TraceClassUnloading 关闭 打印类卸载信息 PrintInlining 关闭 打印方法内联信息 PrintAassembly 关闭 打印即时编译后的二进制信息

后续在整理下垃圾回收器和一些优化事情。

0 0
原创粉丝点击