我如何估计每秒给定读取请求需要多少个Cassandra节点?

问题描述 投票:1回答:1

我希望估计每秒需要为特定数量的读取提供服务的Cassandra存储节点数量。

我的节点规格是32核,256GB内存,10Gbps NIC,10个6TB HDD。显然,SSD更可取,但在这种情况下将不可用。

我大约有1xB的5x10 ^ 11个值= 500TB的值要服务,以每秒100,000个读取请求的速度。这些请求的分布是完全均匀的,即ram容量缓存将没有效果。

如果我们假设每个HDD可以承受约100 IOps,那么我可以期望我至少需要约100个节点来满足此读取负载-正确吗?

我还估计我至少需要约20台计算机来存储总存储,复制因子为2,加上开销。

cassandra
1个回答
0
投票

这是一个非常广泛的问题-您需要尝试使用专门为此类任务构建的工具NoSQLBench等来测试您的计算机。

典型建议是每个Cassandra节点(包括复制)存储约1Tb的数据。您需要考虑其他因素,例如替换集群中的节点或添加新节点要花费多长时间-流式传输的速度与磁盘上的数据大小成正比。

如果您想获得低延迟的答案,实际上不建议使用HDD。我有一个客户端,它的〜150Tb分布在约30台装有HDD的计算机上,尽管写入量很大,但读取延迟通常会超过0.5秒或更高。您需要考虑到Cassandra需要随机访问数据,而HDD的负责人根本无法这么快地处理请求。

© www.soinside.com 2019 - 2024. All rights reserved.