首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Apache Ignite 2.4数据分区不均匀导致节点内存不足并崩溃

Apache Ignite 2.4数据分区不均匀导致节点内存不足并崩溃
EN

Stack Overflow用户
提问于 2018-05-09 07:41:14
回答 1查看 596关注 0票数 1

环境:

运行在Amazon Linux上的

  1. Apache Ignite2.4。VM是16CPU/122 VM。空间很大。12 of each
  2. cacheMode = PARTITIONED
  3. backups = 0
  4. OnheapCacheEnabled = true
  5. atomicityMode = ATOMIC
  6. rebalacneMode = SYNC
  7. rebalanceBatchSize = 1MB
  8. copyOnread = false
  9. rebalanceThrottle = 0
  10. rebalanceThreadPoolSize = 4

  • 5节点

基本上,我们有一个进程,它在启动时填充缓存,然后从Kafka接收定期更新,并将它们传播到缓存。

缓存中的元素数量随着时间的推移或多或少是稳定的(因为我们有创建、更新和删除事件的混合,所以只有一点波动),但我们注意到数据在不同节点上的分布非常不均匀,其中一个节点的键数(和内存利用率)至少是其他节点的两倍。随着时间的推移,该节点要么耗尽内存,要么开始执行非常长的GC,并与群集的其余部分失去联系。

我的期望是Ignite会在不同的节点上平衡数据,但现实中显示的是完全不同的东西。我是不是漏掉了什么?为什么我们会看到这种不平衡,我们如何解决它?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-09 04:53:03

归根结底,尽管我们的散列函数具有良好的分布性,但默认的亲和性函数并没有在集群中的节点之间产生良好的键分布(以及相应的内存分布)。我们用一个非常简单的(partition # % # of nodes)替换了它,这大大改善了分布(方差小于2% )。

这不是一个通用的解决方案;它对我们有效,因为我们的整个集群都在一个虚拟机中,并且我们不使用复制。对于跨越VM边界和复制的大型集群,必须将复制的数据保存在单独的服务器中,而朴素的方法无法解决这一问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50243616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档