JVM内存模型深度剖析与优化

JVM整体结构及内存模型

JVM内存参数设置

SpringBoot程序的JVM参数设置格式(tomcat的直接加在bin目录下的cataline.sh文件里)

java -Xms2048M -Xmx2048M -Xmn1024M -Xss512K -XX:MetaSpaceSize=256M -XX:MaxMetaSpaceSize256M -jar XXX.jar

关于元空间的参数设置有两个:

-XX:MaxMetaSpaceSize:设置元空间最大值,默认是-1,即不限制,或者说是受限于本地内存的大小。

-XX:MetaSpaceSize=M:指定元空间触发FullGC的初始阈值(元空间无固定初始大小),以字节为单位,默认是21M,达到该值就会触发 fullgc 进行类型卸载。同时收集器会对该值进行调整;如果释放了大量空间就适当降低该值,如果释放了很少的空间,那么在不超过 -XX:MaxMetaSpaceSize (如果设置了)的情况下,就适当提高该值。这个和早期jdk版本的-XX:PermSize参数意思不一样,-XX:PermSize代表永久代的初始容量。

由于调整元空间大小需要FullGC,这是非常昂贵的操作,如果在应用启动的时候发生大量的FullGC,通常都是由于永久代或者元空间调整了大小,基于这种情况,建议将 -XX:MaxMetaSpaceSize 和 -XX:MetaSpaceSize 设置成一样的值,并且要比初始值大,对于8G物理内存的机器来说,这两个值一般设置为256M

JVM参数的优化

尽可能的让对象在新生代里面分配和回收,尽量别让太多对象进入老年代,避免频繁的对老年代进行GC操作,同时给系统充足的内存大小,避免新生代频繁的进行GC。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值