JVM常用参数(-Xms/-Xmx/-Xss/-Xmn)

1、JVM涉及的空间:堆:包括年轻代与老年代+字符串常量池,年轻代由一个Eden与两个Survivor区。方法区:持久代与元空间都是方法区的实现,JDK1.8改为元空间。                             

2、JVM参数设置,先来看服务器配置的参数:

  • -Xms:初始堆内存大小,设定程序启动时占用内存大小,默认物理内存1/64   -Xms = -XX:InitialHeapSiz
  • -Xmx:最大堆内存,设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常,默认物理内存1/4,-Xmx = -XX:MaxHeapSize。                                                                                                   上图中的-Xms与-Xmx设置的大小一样 6000M
  • -Xss:设置单个线程栈大小,一般默认512~1024kb。单个线程栈大小跟操作系统和JDK版本都有关系,-Xss = -XX:ThreadStackSize
  • -Xmn:设置年轻代大小。整个堆大小=年轻代大小 + 年老代大小 + 常量池。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
  • -XX:MetaspaceSize 元空间大小,元空间本质跟永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代最大的区别在于:元空间并不在虚拟机中,而是使用本地内存,由操作系统支配。因此,元空间大小仅受本地内存限制。
  • -XX:+PrintGCDetails :打印GC详细日志信息
  • -XX:SurvivorRatio:幸存者比例设置,设置年轻代中Eden区与Survivor区的大小比值。设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10
  • -XX:NewRatio:新生代比例设置(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为1,则年轻代与年老代所占比值为1:1,年轻代占整个堆栈的1/2。
  • -XX:MaxTenuringThreshold:进入老年代阈值设置
  • -XX:PermSize=128m:持久代内存初始值分配128M;       -XX:MaxPermSize=512m:设置持久代最大为512m

在IDEA中进行JVM参数配置,如下:

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值