Cassandra - 许多小节点或更少的大节点?
Cassandra - many small or fewer bigger nodes?
我将在 Google 云上安装我的 Cassandra 数据库。os实例以线性方式定价,这意味着 1cpu 和 2gb ram 是 1 美元,2cpu 和 4gb 是 2 美元,4cpu 和 8GB 是 4 美元等等。
我正在决定实例的大小,但不确定标准是什么?我正在考虑使用更少的较大实例 (8cpu, 64gb) opposed 到更轻的实例,例如 (2cpu, 4 gb)。我的想法是,如果实例更多,每个节点将携带更少的整体数据,如果节点出现故障,影响会更小。同样,这些较小实例的 os 的开销会更少,因为它会接受更少的连接。
这些是 pros,但这里有一些我能想到的缺点:
1)每个实例的利用率都会降低
2) Cassandra + JVM 在这么多实例上的开销加起来会很大。
3) 我将使用本地 SSD opposed 到持久性 SSD,后者要贵得多,这意味着每个实例都需要自己的本地 SSD,这会增加 costs.
这些是我能想到的一些原因,在为 Cassandra 数据库(甚至可能是一般节点)选择更多较小的实例与更少的较大实例之间是否还有其他 pros/cons?是否有与选择 Cassandra 服务器大小相关的最佳实践?
PS:我添加了'Java'标签,因为Cassandra是使用JAVA构建的并且在JVM上运行,想看看JVM是否有任何pros/cons .
我认为您已经达到了一些权衡点,但还有一些其他的事情:
- 随着单个节点上存储的数据量的增加,引导(添加新节点)的成本也会增加。例如,您将获得合理的引导时间,每个节点存储 100 GB,但每个节点存储 10 TB 的过程将花费很长时间。
- SSD 的使用使这一点变得不那么重要,但请考虑为您的提交日志和数据使用单独的物理磁盘。
- 通常不推荐少于 4 个内核或少于 8 GB 内存的配置,但您的实际情况可能会有所不同。
我将在 Google 云上安装我的 Cassandra 数据库。os实例以线性方式定价,这意味着 1cpu 和 2gb ram 是 1 美元,2cpu 和 4gb 是 2 美元,4cpu 和 8GB 是 4 美元等等。
我正在决定实例的大小,但不确定标准是什么?我正在考虑使用更少的较大实例 (8cpu, 64gb) opposed 到更轻的实例,例如 (2cpu, 4 gb)。我的想法是,如果实例更多,每个节点将携带更少的整体数据,如果节点出现故障,影响会更小。同样,这些较小实例的 os 的开销会更少,因为它会接受更少的连接。
这些是 pros,但这里有一些我能想到的缺点: 1)每个实例的利用率都会降低 2) Cassandra + JVM 在这么多实例上的开销加起来会很大。 3) 我将使用本地 SSD opposed 到持久性 SSD,后者要贵得多,这意味着每个实例都需要自己的本地 SSD,这会增加 costs.
这些是我能想到的一些原因,在为 Cassandra 数据库(甚至可能是一般节点)选择更多较小的实例与更少的较大实例之间是否还有其他 pros/cons?是否有与选择 Cassandra 服务器大小相关的最佳实践?
PS:我添加了'Java'标签,因为Cassandra是使用JAVA构建的并且在JVM上运行,想看看JVM是否有任何pros/cons .
我认为您已经达到了一些权衡点,但还有一些其他的事情:
- 随着单个节点上存储的数据量的增加,引导(添加新节点)的成本也会增加。例如,您将获得合理的引导时间,每个节点存储 100 GB,但每个节点存储 10 TB 的过程将花费很长时间。
- SSD 的使用使这一点变得不那么重要,但请考虑为您的提交日志和数据使用单独的物理磁盘。
- 通常不推荐少于 4 个内核或少于 8 GB 内存的配置,但您的实际情况可能会有所不同。