因为大量数据备份;导致在备份过程出现堆溢出的情况
当前情况
总内存:7.92G
已使用:3.7G
jvm总内存最大:3.06G
jvm非堆内存:最大1.23G,使用<170M
jvm堆内存:最大1.83G
计算
如果预留2G扩展内存,还可分配7.92G-3.7-2=2.22G
缩减非堆内存 预留最大非堆内存为512M:2.22G+1.23-0.5=2.95G
最终堆内存分配:1.83+2.95=4.78G
新生代分配:1.78G
old分配:3G
最终配置
-Xms2g -Xmx5g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:NewSize=1g -XX:MaxNewSize=2g -XX:CompressedClassSpaceSize=100m
-XX:OldSize=3g(1.8不生效);
jvm内存调大明显导致停顿时间加长了;minorGc从原来的9ms增加到了82ms
图片对比
前
后