一次内存溢出分析

服务报错services java.lang.OutOfMemoryError: Metaspace

在测试环境启动默认添加了参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump文件路径, 发生内存溢出时自动生成dump文件

-XX:+PrintGCDetails 参数记录GC日志

首先在公司监控平台分析 

通过监控发现 年轻代通过yong gc 会回收大量空间,老年代占用空间比较稳定,在16:30的时候系统发生了3次full gc,对应这个时间点看 永久代Metaspace 在四点30达到最大值,而年轻代老年代比较正常。

通过监控结合报错信息 java.lang.OutOfMemoryError: Metaspace 可推断可能是 永久代导致的 full gc,引起的服务内存溢出(16:35左右监控平台获取不到服务的信息了,服务挂了)

再结合GC日志分析  

通过日志分析,出发fullgc的原因也是 Metadata GC Threshold

查看服务启动参数Metaspace相关的设置为  -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m

 

发现服务Metaspace差不多达到最大值了,所以导致频繁full gc

通过调整参数值为  -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=192m 继续观察

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值