jvm参数配置

1
-XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Xms256m -Xmx256m

文章看下来上面这段配置的意思很简单,设置元空间的初始值和最大值,设置堆空间的初始值和最大值。

为什么MetaspaceSize要设置为128M?为什么堆内存初始值Xms设置为256M而不是512M?

按照Java官方的指导:

img

Java堆大小设置,Xms 和 Xmx设置为老年代存活对象的3-4倍,即Full GC之后的老年代内存占用的3-4倍。

②、永久代 PermSize和MaxPermSize(元空间)设置为老年代存活对象的1.2-1.5倍。

③、年轻代Xmn的设置为老年代存活对象的1-1.5倍。

④、老年代的内存大小设置为老年代存活对象的2-3倍。

使用一个模仿生成环境进行测试运行一段时间后,获取JVM参数数据。然后再进行设置实际的JVM参数;如下用jstat工具查看jvm的情况:

1
2
3
4
jstat -gc 12345
###
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
13824.0 22528.0 13377.0 0.0 548864.0 535257.2 113152.0 46189.3 73984.0 71119.8 9728.0 9196.2 14 0.259 3 0.287 0.546

OU表示老年代所占用的内存为 46189.3 K(大约45M);那么jvm相应的配置参数应该做如下修改:

1
-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -Xms180m -Xmx180m
------ 本文结束感谢您的阅读 ------
请我一杯咖啡吧!
itingyu 微信打赏 微信打赏