ignite 2.8 内存溢出 问题记录

公司选型采用ignite 记录实时数据,用于快速查询,实时存储

使用场景: PLC采集点-> KafKa -> Flink -> ignite

数据规模: 每10毫秒1条

开始测试的时候一切正常, 经过一次大的开发变动后发现,启动插入数据程序后十分钟

ignite日志中就会报 Possible too long JVM pause: 1054 milliseconds.

随后一段时间ignite使用变得非常慢,随后报 java.lang.OutOfMemoryError: Java heap space

ignite崩溃....

抓dump日志进行分析,heap内存中存在大量这个对象...

使用java自带的内存监控工具发现老区一直再涨又不回收,....

 

分析原因: 

1. 因为代码进行过大量的修改, 开始觉得是代码有问题,将代码全部回退后发现依然有问题

2. 因为在Flink中使用的是Mybatis,怀疑是建连接的问题,连接没有释放,于是使用存jdbc插入数据发现没有问题

经过仔细核对代码发现是使用了ignite 自带的函数创建主键,插入语句uuid()

insert into abc_table (id,col_a,col_b) values (uuid(),'1','2');

大量插入会导致heap  fgc不回收,咱也是初次使用ignite,咱也不知道这算不算ignite的bug`````````大神可以给解释解释

修改为 insert into abc_table (id,col_a,col_b) values (#{uuid},'1','2');  uuid从java中创建即可

到此修改后, 内存就正常了,没问题了,问题解决了

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值