JVM启动参数
Posted mirai_42
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM启动参数相关的知识,希望对你有一定的参考价值。
堆内存
服务器JVM默认的初始化
和最大堆内存
是物理内存的四分之一。比如服务器内存是16g
,则默认的最大堆内存是4g
。
可以通过 JVM
启动参数-Xms
(初始化堆大小)和-Xmx
(最大堆大小)来指定初始化堆大小
和最大堆大小
。
年轻代大小
默认情况下,年轻代大小由参数NewRatio
控制(服务器JVM默认配置为2)。设置-XX:NewRatio=3
意味着年轻代和老年代之间的比率为1:3
。换句话说,伊甸园空间和幸存者空间的总大小将是堆总大小的四分之一。
年轻代的最大大小将根据总堆的最大大小和NewRatio参数的值来计算。
幸存者空间
幸存者空间有2个,采用标志复制算法回收。服务器JVM默认配置大小为年轻一代的八分之一,也就是说Survivor1:Survivor2:eden =1:1:6
示例
下图是启动一个Java程序,设置JVM启动参数为:-Xms1g -Xmx1g
1.通过jinfo pid 打印Java系统属性和JVM命令行参数
2.再通过jstat 打印出GC信息
参数说明
参数 | 说明 | 默认值 |
---|---|---|
-XX:InitialHeapSize | 初始化堆内存,通过-Xms 设置 | 系统内存1/64 |
-XX:MaxHeapSize | 最大堆内存,通过-Xmx 设置 | 系统内存四分之一 |
-XX:OldSize | 老年代内存大小 | 默认为堆内存的三分之二 |
-XX:NewSize | 新生代内存大小 | 默认为堆内存的三分之一 |
参考链接
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#sthref30
以上是关于JVM启动参数的主要内容,如果未能解决你的问题,请参考以下文章