手把手看监控--当不设置JVM-Xms时

背景:

运维埋的一个坑,在该应用上只配置留-Xmx,没有配置-Xms。

表象:

堆内存从0.2G开始,最大到0.8G,就开始执行GC,导致频繁GC,大致间隔1分钟/次。从下图左侧即可看到。

解决:

增加-Xms重新发版本,堆内存、GC间隔明显看着好多了。

原因:

-Xms为应用初始化部署的时候,向操作系统申请多少内存。如果不设置-Xms后,应用只会申请一小部分的内存,当堆内存使用达到峰值,会进行GC而不会重新申请。当应用运行一段时间,堆内存最低水位会逐渐抬高。例如该监控图,一开始最低水位在0.2G,现在到达0.4G。当最低水位一直抬高,应用才会向操作系统申请扩容内存使用。直到到达-Xmx设置阀值。

结论:

当只配置-Xmx,不配置-Xms,会造成频繁GC,影响机器性能,但不会造成OOM。

改造:

修正后,堆内存清理现象明显,GC频率降低。

 

堆内存使用情况

 

gc情况

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值