常用的JVM配置参数说明

Posted 沛沛老爹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的JVM配置参数说明相关的知识,希望对你有一定的参考价值。


工作中常用的JVM参数配置,以Java8为例:

日志相关

  1. -XX:+PrintFlagsFinal,打印JVM所有参数的值

  2. -XX:+PrintGC,打印GC信息

  3. -XX:+PrintGCDetails,打印GC详细信息

  4. -XX:+PrintGCTimeStamps,打印GC 的时间戳

  5. -Xloggc:filename,设置GClog文件的位置

  6. -XX:+PrintTenuringDistribution,查看熬过收集后剩余对象的年龄分布信息

内存设置相关

  1. -Xms,设置堆的初始化内存大小

  2. -Xmx,设置堆的最大内存

  3. -Xmn,设置新生代内存大小

  4. -Xss,设置线程栈大小

  5. -XX:NewRatio,新生代与老年代比值

  6. -XX:SurvivorRatio,新生代中Eden 区与两个Survivor区的比值,默认为8, 即Eden:Survivor:Survivor=8:1:1

  7. -XX:MaxTenuringThreshold,从年轻代到老年代,最大晋升年龄。 CMS下 默认为6,G1 下默认为15

  8. -XX:MetaspaceSize,设置元空间的大小,第一次超过将触发GC

  9. -XX:MaxMetaspaceSize,元空间最大值

  10. -XX:MaxDirectMemorySize,用于设置直接内存的最大值,限制通过 DirectByteBuffer 申请的内存

  11. -XX:ReservedCodeCacheSize,用于设置JIT编译后的代码存放区大小, 如果观察到这个值有限制,可以适当调大, 一般够用即可

垃圾收集相关

  1. -XX:+UseSerialGC,设置串行收集器

  2. -XX:+UseParalleIGC,设置并行收集器

  3. -XX:+UseConcMarkSweepGC,使用CMS收集器

  4. -XX:GC 设 置 P r GC的线程数

  5. -XX:MaxGCPauseMillis,GC最大暂停时间ms

  6. -XX:+UseG1GC,使用G1垃圾收集器

G1垃圾回收器相关

  1. -XX:MaxGCPauseMillis,用于设置目标停顿时间, G1会尽力达成

  2. -XX:G1HeapRegionsize,用于设置小堆区大小

  3. -XX:lnitiatingHeapOccupancyPercent,表示当整个堆内存使用达到一定比例(默认是45%),并发标记阶段就会被启动

  4. -XX:ConcGCThreads,表示并发垃圾收集器使用的线程数量,默认值随JVM运行的平台不同而变动

CMS垃圾回收器相关

  1. -XX:+UseCMSInitiatingOccupancyOnly

  2. -XX:CMSInitiatingOccupancyFraction,与前者配合使用,指定MajorGC的发生时机

  3. -XX:+ExplicitGClnvokesConcurrent,代码调用System .gc()开始并行FullGC

  4. -XX:+CMSScavengeBeforeRemark,表示开启或关闭在CMS重新标记阶段之前的清除(YGC)尝试,它可以降低remark时间

  5. -XX:+ParallelRefProcEnabled,可以用来并行处理Reference, 以加快处理速度,缩短耗时

说明

以上的内容为基本上常见的,如果你想设置更多的参数,可以参考官方网站:JVM参数查询

以上是关于常用的JVM配置参数说明的主要内容,如果未能解决你的问题,请参考以下文章

JVM调优总结:参数配置说明

JVM常用参数配置---摘自《深入理解java虚拟机》《Java性能权威指南》

常用jvm参数配置

Jvm常用参数

常用的JVM配置参数说明

常用的JVM配置参数说明