JVM参数理解

1、JVM的内存

JVM的内存 = 年轻代(Young) + 年老代(Tenured) + 持久代

-Xms: 设置初始JVM内存大小

-Xmx: 设置最大JVM内存大小

一般讲Xms, Xmx设置成一样的大小,避免超过Xms后,内存重新整理;另外,由于由于jvm进程本身会占用内存空间,所以jvm实际占用的内存空间会比设置的大

-Xmn: 设置年轻代内存大小(一般设置为Xmx的1/3)

年轻代包括两个区,Edgen 和 Survivor 区,Suvrvior区还被平均分成了两块 from space 和 to space,默认情况下 Edgen与2个Survior大小比例 8:2, 即一个survivor占据

1/10的年轻代内存大小。可以通过-XX:SurviorRatio=X 修改Edgen与Survior的大小比例

老年代的大小无法设置,等于 JVM内存-年轻代-持久代;如果未指定-Xmn参数,可以通过-XX:NewRatio=X设置年轻代和年老代的比例,默认1:2, 即年轻代占据除去持久代内存的1/3

-XX:PermSize=256M: 持久代初始内存大小

-XX:MaxPermSize=512M: 最大持久代内存大小,一般不需要设置很大,可以在程序运行一段时间后,通过jconsole进行查看,从而调整持久代的初始值及最大值

2、其它参数

-server: 在linux上默认是开启的,windows上要手动设置

-XX:+UseG1GC: -Xmx设置超过4g时,建议开启;一般采用 -XX:+UseConcMarkSweepGC

垃圾回收期,有个名词STW: stop the world, 就是垃圾回收器在执行回收动作时,JVM会停止所有动作,即不做任何其它的事情,如果时间较长,将出现程序停止现象

-Djava.awt.headless=true: 在服务器上使用时,一般开启

3、举个例子

1)JAVA_OPTS="$JAVA_OPTS -Xms6g -Xmx6g -Xmn2g -Xss1024K-XX:PermSize=256M -XX:MaxPermSize=1g -Djava.awt.headless=true -XX:+UseG1GC "

2)JAVA_OPTS="$JAVA_OPTS -Xms2g -Xmx2g -Xmn700M -Xss512K -XX:PermSize=256M -XX:MaxPermSize=512M -Djava.awt.headless=true -XX:+UseConcMarkSweepGC"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值