对特定行集的定期更新降低了cassandra的性能

时间:2016-08-18 06:14:13

标签: cassandra cassandra-2.0

在我的一个表格中,有大约2000万行(未来可以增长更多),需要每天更新。

此前更新过程相当顺利(吞吐量大约100K更新/分钟,机器上的负载平均值没有任何增加)。但经过1个月的定期更新后,性能下降了很多。现在,即使我尝试以低吞吐量(即大约30K rpm)进行更新,机器上的负载平均值也会变高,其他查询也会受到影响。

Cassandra版 - > 2.0.14

计算机配置 - > (RAID-1,1TB,32核,64 GB RAM),类似4台机器,复制因子为3。

给定表格的压缩策略 - > SizeTiered

我应该尝试对其进行哪些更改?

1 个答案:

答案 0 :(得分:1)

以下是您的一些想法:

  • Cassandra喜欢更多小型机器,而不是几台大型机器。建议最大堆8GB。大堆=长GC =暂停和降低性能(这可能是你的情况,但你必须监控你的环境,检查它是否是GC带CPU或什么)。也不要在单个节点上存储太多数据,修复和压缩可能需要太长时间并且需要cpu。

  • 你可以尝试调整你的cassandra(参见例如this guide - 不幸的是Cassandra 2.1)

  • 您可以考虑cassandra升级
  • 如果你每天更新整个表 - 那么这可能是cassandra的反模式 - 大量更新=更长的压缩。如果你想保持当前的设计我会建议每个节点有更多的节点和更少的数据,并检查压缩过程需要多少时间和资源