jvm总结四《JVM参数详解》

本文内容:jvm参数汇总 jvm垃圾收集器组合

堆栈参数

参数 作用
-Xms jvm启动时堆内存的初始大小
-Xmx 堆内存的最大值
-Xmn 新生代空间大小,剩下的为老年代空间大小
-Xss 栈空间大小
-XX:PermGen 设置永久代内存的初始化大小,jdk1.8开始废弃永久代
-XX:MaxPermGen 设置永久代的最大值
-XX:SUrvivorRatio 设置新生代和存活区的比例。-XX:SurvivorRatio=8 表示存活区:新生代=1:8 =》新生代占年轻代的8/10,每个存活区各占年轻代的1/10。默认值:8
-XX:NewRatio 设置老年代和年轻代的比例。比如:-XX:NewRatio=8 表示老年代内存:年轻代内存=8:1 => 老年代占堆内存的8/9;年轻代占堆内存的1/9。默认值:2

垃圾回收器参数

参数 作用
-XX:+UseSerialGC 使用Serial收集器串行收集
-XX:+UseParNewGC ParNew收集器
-XX:ParallelGCThreads 设置并行线程数,默认是CPU核数
-XX:+UseParallelGC 使用Parallel Scavenge收集器,关注系统的吞吐量
-XX:+UseParallelOldGC 使用Parallel Scavenge收集器作用在老年代
-XX:+UseConcMarkSweepGC 并行,使用CMS收集器
-XX:+ UseCMSCompactAtFullCollection Full GC后,进行一次碎片整理;整理过程是独占的,会引起停顿时间变长
-XX:+CMSFullGCsBeforeCompaction 设置进行几次Full GC后,进行一次碎片整理
-XX:+ParallelCMSThreads 设定CMS的线程数量
-XX:CMSInitiatingOccupancyFraction CMS垃圾收集器,当老年代达到多少百分比时候,触发CMS垃圾回收
-XX:+UseG1GC 使用G1收集器,进行垃圾收集的时候它会有限收集存活对象较少的区域

目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种。并行和并发 GC 的策略通过 UseParallelGC 和 UseConcMarkSweepGC 来指定,还有一些细节的配置参数用来配置策略的执行方式。例如:XX:ParallelGCThreads, XX:CMSInitiatingOccupancyFraction 等。通常:Young 区对象回收只可选择并行(耗时间),Old 区选择并发(耗 CPU)。

常用配置

参数 作用
-Xms jvm启动时堆内存的初始大小
-Xmx 堆内存的最大值
-Xmn 新生代空间大小,剩下的为老年代空间大小
-Xss 栈空间大小
-XX:PermGen 设置永久代内存的初始化大小,jdk1.8开始废弃永久代
-XX:MaxPermGen 设置永久代的最大值
-XX:+UseStringCache 默认开启,启动缓存常用的字符串
-XX:+UseConcMarkSweepGC 老年代使用CMS收集器 并行并发
-XX:+UseParNewGC 新生代使用ParNew收集器 并行
-XX:ParallelGCThreads 设置并行线程数,默认是CPU核数
-XX:+CMSClassUnloadingEnabled 允许对类的元数据进行清理
-XX:+DisableExplicitGC 禁止显示的GC
-XX:+UseCMSInitiatingOccupancyOnly 只有达到阈值后才进行CMS回收
-XX:CMSInitiatingOccupancyFraction 设置CMS老年代的回收阈值
-verbose:gc 输出GC详情
-XX:+PrintGCDetails 打印GC详情日志
-XX:+PrintGCDateStamps 打印GC的耗时
-XX:+PrintTenuringDistribution 打印Tenuring年龄信息
-XX:+HeapDumpOnOutOfMemoryError 抛出OOM时进行HeapDump
-XX:HepDumpPath=/home/admin/gcLogs 指定HeapDump的文件路径或目录

垃圾收集器常用组合

在这里插入图片描述

上面这张图很就是所有垃圾收集器的组合
组合的详细介绍可以参考https://www.cnblogs.com/grey-wolf/p/10222758.html#_label2这篇文章

猜你喜欢

转载自blog.csdn.net/u010994966/article/details/102915784