java1.8内存设置参数_jdk1.8.191 JVM内存参数 InitialRAMPercentage和MinRAMPercentage

MaxRAMPercentage、InitialRAMPercentage、MinRAMPercentage。

这三个参数是JDK8U191为适配Docker容器新增的几个参数,类比Xmx、Xms,至于-XX:InitialRAMFraction、-XX:MaxRAMFraction、-XX:MinRAMFraction已经被标记为deprecated 。这几个参数的好处是什么呢?

Docker容器模式下,我们可以给每个JVM实例所属的POD分配任意大小的内存上限。比如,给每个账户服务分配4G,给每个支付服务分配8G。如此一来,启动脚本就不好写成通用的了,指定3G也不是,指定6G也不是。

但是,有了这三个新增参数,我们就可以在通用的启动脚本中指定75%(-XX:MaxRAMPercentage=75 -XX:InitialRAMPercentage=75 -XX:MinRAMPercentage=75)。

那么,账户服务就相当于设置了-Xmx3g -Xms3g。而支付服务相当于设置了-Xmx6g -Xms6g,是不是很赞。

jstat -gc 12s

YGC YGCT FGC FGCT GCT983 13.961 1400 275.606 289.567

987 14.011 1401 275.722 289.733

990 14.091 1403 275.986 290.077

994 14.148 1405 276.222 290.371

995 14.166 1406 276.366 290.531

998 14.226 1408 276.736 290.962

1001 14.342 1409 276.871 291.213

1005 14.463 1411 277.099 291.562

S0/S1区容量为170496K(对应S0C/S1C两列);

Eden区容量为171008K(对应EC列);

Old区容量为1024000K(对应OC列);

Metaspace容量为70M;

根据各个区的容量大小,发现和JVM参数配置的4.5G内存出入非常大。整个堆的大小缩容了很多,从4.5G缩小到现在的大概1.5G(170496K*2+171008K+1024000K+70M ≈ 1.5G

参数-XX:+UseAdaptiveSizePolicy的锅。这个参数在PS前提下默认是开启的,其作用是自动调整堆的大小,以及对象从S区晋升到Old区的年龄阈值(threshold),调节threshold逻辑为:判断Young GC和Full GC消耗的时间差:

jar包:

JAVA_OPTS="-XX:+UseContainerSupport -XX:InitialRAMPercentage=40.0 -XX:MinRAMPercentage=20.0 -XX:MaxRAMPercentage=80.0 -XX:-UseAdaptiveSizePolicy"

war包:

修改 catalina.sh

JAVA_OPTS="$JAVA_OPTS -XX:+UseContainerSupport -XX:InitialRAMPercentage=40.0 -XX:MinRAMPercentage=20.0 -XX:MaxRAMPercentage=80.0 -XX:-UseAdaptiveSizePolicy -Djava.security.egd=file:/dev/./u

random"

如果在k8s使用,limit限制内存资源做成变量,那么pod java启动 只有limit的20%。

摘自:https://mp.weixin.qq.com/s?__biz=MzU5ODUwNzY1Nw==&mid=2247484533&idx=1&sn=6f6adbccadb3742934dc49901dac76af&chksm=fe426d93c935e4851021c49e5a9eb5a2a9d3c564623e7667e1ef3a8f35cb98717041d0bbccff&scene=0&xtrack=1#rd

http://www.data-master.net/2054292282

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值