【问题标题】:How can I estimate how many Cassandra nodes I need for a given read requests per second load?如何估计每秒负载给定读取请求需要多少个 Cassandra 节点?
【发布时间】:2020-05-31 21:35:43
【问题描述】:

我希望估计每秒需要多少个 cassandra 存储节点来提供特定数量的读取。

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

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

如果我们假设每个 HDD 可以维持 ~100 IOps,那么 我可以预期我至少需要 ~ 100 个节点来处理这个读取负载 - 对吗?

我还估计,在复制因子为 2 的情况下,总存储空间至少需要 20 台机器,再加上开销。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

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

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

    如果您想获得低延迟的答案,真的不推荐使用 HDD。我有一个约 150Tb 的客户端,分布在约 30 台带有 HDD 的机器上,虽然有很多写入,但读取延迟经常超过 0.5 秒,甚至更高。您需要考虑到 Cassandra 需要对数据进行随机访问,而 HDD 的负责人根本无法如此快速地处理请求。

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 1970-01-01
      • 2016-08-07
      • 2016-10-14
      • 2012-12-12
      • 2023-04-01
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      相关资源
      最近更新 更多