在我的一个表格中,有大约2000万行(未来可以增长更多),需要每天更新。
此前更新过程相当顺利(吞吐量大约100K更新/分钟,机器上的负载平均值没有任何增加)。但经过1个月的定期更新后,性能下降了很多。现在,即使我尝试以低吞吐量(即大约30K rpm)进行更新,机器上的负载平均值也会变高,其他查询也会受到影响。
Cassandra版 - > 2.0.14
计算机配置 - > (RAID-1,1TB,32核,64 GB RAM),类似4台机器,复制因子为3。
给定表格的压缩策略 - > SizeTiered
我应该尝试对其进行哪些更改?
答案 0 :(得分:1)
以下是您的一些想法:
Cassandra喜欢更多小型机器,而不是几台大型机器。建议最大堆8GB。大堆=长GC =暂停和降低性能(这可能是你的情况,但你必须监控你的环境,检查它是否是GC带CPU或什么)。也不要在单个节点上存储太多数据,修复和压缩可能需要太长时间并且需要cpu。
你可以尝试调整你的cassandra(参见例如this guide - 不幸的是Cassandra 2.1)