2013-10-14 68 views
1

我正在运行5个节点的Cassandra集群,这也恰好在5个节点上运行Solr。我已经摄取并索引了超过十亿的项目,并且目前这条消息不断被打印在控制台上;Cassandra和堆大小

INFO 10:55:54360无法减少堆使用,因为没有脏 列族INFO 10:56:03897 GC为ConcurrentMarkSweep:538毫秒 1点集合,使用2733064112;最大为3158310912 WARN 10:56:03,898堆满0.865356257870536。您可能需要减少 可记录和/或缓存大小。卡桑德拉现在将刷新两个最大的存储空间以释放内存。调整cassandra.yaml flush_largest_memtables_at门槛,如果你不希望 卡桑德拉做到这一点自动

我有8G的每个节点,我已经设置MAX_HEAP_SIZE到3G的Cassandra-env.sh。

请问有人能告诉我该如何解决这个问题吗?

感谢 迈季

回答

3

这可能只是你需要更多的堆 - 添加一个或两个演出,看看会发生什么。 OTOH,您可能还需要更多的系统内存来进行文件缓存 - 对于8 GB系统来说,十亿个启用了Solr的行似乎很多。

一般情况下,约40万到1亿行是启用的Solr,DSE节点的最大容量。通过5个节点和10亿行,您的集群每个节点约有2亿行。有时2亿可以放在一个节点上,有时候不会 - 在那里掷硬币。

此外,较高的复制因子有效地增加了卡桑德拉将放置在每个节点上的行数。因此,通过射频将那4000万到1亿行引导除以得到每个节点的体面目标行数。

总之,你需要一个更大的集群,最少10个节点的,也许多达25个节点。而RF的3或更高,你可能需要更多的节点。

+0

至于40-100万行的启用了Solr的-DSE节点的建议,于我而言,是Solr的同一节点卡桑德拉上运行(相同的数据中心,SimpleStrategy),所以你的建议是一个Solr的节点运行在专门用于Solr的独立数据中心? – Mskh