【问题标题】:Cassandra - best practice for node sizeCassandra - 节点大小的最佳实践
【发布时间】:2019-12-22 19:59:20
【问题描述】:

节点大小是否有最佳实践?

我们目前正在运行一个 3 节点集群,RF=3。 我们的负载:

Datacenter: datacenter-prod
===========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                              Rack
UN  10.164.0.23   7.55 GiB   256          100.0%            e7e2a38a-d4f3-4758-a345-73fcffe26035  rack1
UN  10.164.0.24   7.61 GiB   256          100.0%            0c18b8e4-5ca2-4fb5-9e8c-663b74909fbb  rack1
UN  10.164.0.58   7.61 GiB   256          100.0%            547c0746-72a8-4fec-812a-8b926d2426ae  rack1

节点仅运行 cassandra。磁盘使用情况如下:

root@cassandra-1:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay          99G   20G   75G  22% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/sda1        99G   20G   75G  22% /etc/hosts
tmpfs           3.7G     0  3.7G   0% /proc/acpi
tmpfs           3.7G     0  3.7G   0% /sys/firmware

所以每个节点使用了 ~ 20G 分配的 100G。

  • 当我们走向 100Gb 标记时我们应该怎么做?
  • 我们应该添加更多磁盘空间还是添加更多节点?

我记得最好有小节点以防崩溃/恢复操作。

  • 然后我们需要添加多少个节点和使用哪个 RF 才能重新平衡磁盘使用量?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    没有一个简单的规则,但 1 TB 的数据大小通常是一个不错的选择。此数据大小适合至少 16 GB(或 32 GB 内存以保持安全),最重要的是,使用 SSD(不是旋转磁盘)。

    请记住,如果您想坚持最佳做法,对于 1 TB 的数据负载,由于压缩,您应该有 2 TB 的总磁盘大小。

    【讨论】:

    • 使用更小的磁盘大小让节点可以使用更少的内存是否有意义?具有 x GB 数据的节点应具有多少 RAM 是否有经验法则?
    • 没有规则,因为它取决于很多事情,例如你的数据模型。例如,如果 LCS 位于包含大量数据的表中,则需要有更大的 RAM 来容纳 LCS 中的所有 SSTable,而 LCS 通常比 STCS 多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2017-05-06
    • 2015-07-13
    相关资源
    最近更新 更多