JVM常用参数

Posted

tags:

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

参考技术A -Xmx4g 初始堆大小 4g

-Xms4g 最大堆大小4g

-Xmn512m 年轻代大小(1.4or lator)整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8

-XX:MetaspaceSize=256m 设置元空间初始大小为256m

-XX:MaxMetaspaceSize=512m 设置元空间最大可分配大小512m

-Xss256k 每个线程的堆栈大小256k

-XX:+ExplicitGCInvokesConcurrent 降低每次Full GC的时间,其实就是启用多线程去执行

-XX:+UseConcMarkSweepGC 启用CMS做为垃圾收集

-XX:+UseCMSInitiatingOccupancyOnly 只有开启了这个参数,CMSInitiatingOccupancyFraction这个参数才会生效

-XX:CMSInitiatingOccupancyFraction=70 CMS垃圾收集器,当老年代达到70%时,触发CMS垃圾回收。

-XX:ParallelGCThreads=4 选项指定在默认垃圾收集器的并行操作期间使用的线程数为4

-XX:-UseBiasedLocking 关闭用户偏向锁

-XX:AutoBoxCacheMax=20000 参数是设置Integer缓存上限的参数,在VM初始化期间java.lang.Integer.IntegerCache.high属性可以被设置和保存在私有的系统属性sun.misc.VM class中。理论上讲,当系统需要频繁使用Integer时,或者说堆内存中存在大量的Integer对象时,可以考虑提高Integer缓存上限,避免JVM重复创造对象,提高内存的使用率,减少GC的频率,从而提高系统的性能。

-XX:MaxTenuringThreshold=6 设置的是年龄阈值,默认15(对象被复制的次数),这里设置成了6次

-XX:+PrintGCApplicationStoppedTime 打印垃圾收集时 , 系统的停顿时间

-XX:+PrintGCDateStamps 打印CG发生的时间戳

-XX:+PrintGCDetails 来打印详细的GC日志来查看

-XX:+PrintCodeCache 会打印Code Cache区的使用情况。

-Xloggc:/dev/shm/gc.log 指定gc的log日志所在位置/dev/shm/gc.log

-XX:+UseGCLogFileRotation 打开或关闭GC日志滚动记录功能,要求必须设置 -Xloggc参数

-XX:NumberOfGCLogFiles=2 设置滚动日志文件的个数,必须大于1
日志文件命名策略是,<filename>.0, <filename>.1, ..., <filename>.n-1,其中n是该参数的值

-XX:GCLogFileSize=10m 设置滚动日志文件的大小,必须大于8k
当前写日志文件大小超过该参数值时,日志将写入下一个文件

-XX:+HeapDumpOnOutOfMemoryError 表示当JVM发生OOM时,自动生成DUMP文件。

-XX:HeapDumpPath=/root/logs/ 发生了 内存溢出错误 dump路径为root/logs/ (一般与HeapDumpOnOutOfMemoryError参数一块使用)

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

常用jvm参数配置

JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略

JVM 配置常用参数和常用 GC 调优策略

常用JVM参数(JDK 8)

73.JVM内存基础结构,参数分类,推荐的配置项,参数混用问题,常用工具,常用命令

面试题:JVM 配置常用参数和常用 GC 调优策略