记录一次jvm调优问题,GC (Metadata GC Threshold) ,GC (System.gc())

在项目JVM参数优化过程中遇到连续触发Full GC的情况,发现是由于未设置元空间初始大小导致。设置-XX:MetaspaceSize参数后,虽然改善了情况,但后来发现手动触发GC导致问题再次出现。通过添加-XX:+DisableExplicitGC禁用手动GC,成功解决了连续Full GC的问题。
摘要由CSDN通过智能技术生成

今天在优化项目的jvm参数时发现了一个很奇怪的问题,在这里记录下

最开始的参数

-Xms2g -Xmx2g -XX:SurvivorRatio=2 -XX:NewRatio=1 -Xloggc:gc.log -XX:PretenureSizeThreshold=209715200 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump

 可以看到程序跑了一会儿之后连续触发了两次full gc但是明显不满足条件 内存是够用的,于是看了下gc日志如下

可以看到最开始就触发了元空间的 垃圾回收,经查资料发现是没有设置元空间的初始大小,所以使用默认的20M 导致触发了fullgc

于是加上-XX:MetaspaceSize=265M的参数,现在配置如下

-Xms2g -Xmx2g -XX:MetaspaceSize=265M -XX:SurvivorRatio=2 -XX:NewRatio=1 -Xloggc:gc.log -XX:PretenureSizeThreshold=200m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump
这样配置跑一段时间是没有触发full gc ,但是过了一段时间又连续触发了两次

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值