【问题标题】:Datastax Cassandra repair service weird estimation and heavy loadDatastax Cassandra 维修服务奇怪的估计和繁重的负载
【发布时间】:2015-09-02 09:13:46
【问题描述】:

我有一个包含大约 1TB 数据的 5 节点集群。已启用 Vnode。 Ops Center 版本 5.12 和 DSE 4.6.7。我想在 10 天内进行全面维修,并使用 Ops Center 的维修服务,这样我就不会给集群带来不必要的负载。

我面临的问题是维修服务负担过重并且工作速度过快。 24 小时内的进度约为 30%(根据 Ops Center)。我什至尝试将其更改为 40 天,没有任何区别。

问题,

  1. 我可以相信 OpsCenter 中的完成百分比数字吗?
  2. 建议的数字类似于 0.000006 天。这种猜测会不会与问题有关?
  3. 是否有任何有助于降低负载的设置/调整?

【问题讨论】:

    标签: cassandra datastax datastax-enterprise opscenter


    【解决方案1】:
    1. 您可以将 OpsCenter 用作有关数据存储位置以及集群中发生的情况的指南,但它实际上更像是一个仪表板。真正的“磁带故事”来自 'nodetool' 通过服务器节点上的命令行,例如

    #shell> 节点工具状态

    状态=上/下 |/ 状态=正常/离开/加入/移动 -- 地址加载令牌拥有主机 ID 机架 UN 10.xxx.xxx.xx 43.95 GB 256 33.3% b1e56789-8a5f-48b0-9b76-e0ed451754d4 RAC1

    您使用的是什么类型的压缩?

    您提出了一种“灵丹妙药”的问题,因为可能有几个因素在起作用。这些是示例但不限于:

    A.数据大小,以及 Cassandra 中的整行(您可以使用 nodetool cf_stats table_size 条目查看这些)。导致二进制大小大于 16M 的行将被视为“超”宽行,这可能表明您的数据模型中的架构需要“复合”或“复合”行键。

    B.您在复制和网络策略方面的设置类型。

    C.数据入口点,Cassandra 如何获取数据。你在使用 Python 吗? php?输入什么数据?你可以从一个错误的 PHP 驱动程序的集群中获得时髦的行为(例如)

    D. Vnode 是好的,但也可能是坏的。您正在运行哪个版本的 Cassandra?您可以通过带有 cqlsh -3 的 CQLSH 查找,然后输入“显示版本”

    E.压实类型是一个大杀手。您使用的是 SizeTieredCompaction 还是 LevelCompaction?

    首先从运行任何给定节点的服务器上的命令行运行“nodetool cfstats”。感兴趣的特定领域将是(此时)

    压缩行最小尺寸: 压缩行最大大小:

    在具有 Y 数量 RAM 的系统上,超过 X 数量的字节可能是一个严重的问题。确保 Cassandra 有足够的 RAM 并且堆栈已调整。

    Cassandra 上的默认性能配置通常应该足够了,所以下一步是使用“cqlsh -3 hostname”打开一个到节点的 CQLSH 接口并发出命令“describe keyspaces”。获取您正在运行的已知键空间名称并发出“描述键空间 FOO”并查看您的模式。特别感兴趣的是您的主键。您使用的是“复合行键”还是“复合主键”? (如此处所述:http://www.datastax.com/dev/blog/whats-new-in-cql-3-0)如果没有,您可能需要根据预期的读/写负载。

    还要检查您的初始应用程序层如何将数据插入 Cassandra?使用 PHP? Python?正在使用哪些驱动程序?使用某些 Thrift 连接器(例如 Java 驱动程序或 PHPcassa 驱动程序)的 Cassandra 版本

    除了这些步骤之外,还要考虑您的节点是如何创建的。 请注意,必须减轻从静态节点到虚拟节点(或 vnode)的迁移。您不能简单地在已填充的节点上切换配置。您将需要检查 /etc/cassandra/cassandra.yaml 中的 initial_token: 设置。我在这里问自己的问题是“设置了哪些初始令牌?(没有用于 vnode 的初始令牌)在填充数据后令牌是否更改?”对于我通常运行的静态节点,我使用如下工具计算它们:[http://www.geroba.com/cassandra/cassandra-token-calculator/],因为我遇到了 vnode 的并发症(尽管它们现在比以前更可靠)。

    【讨论】:

    • 他/我们正在/正在对我们所有超过 1000 行的表使用 LeveledCompactionStrategy。
    • 1) 同意 OpsCenter 是一个仪表板,您可以在其中获得集群的概览,但我仍然希望服务部分打印正确的数字
    • B) 使用 RF3。 C)主要来自 Java 和 Spring D)Cassandra 2.0.14.459 和 DSE 4.6.7 E)LeveledCompactionStrategy 用于我们所有超过 1000 行的表
    • 发现问题成功了吗?
    • 还没有。但是没有忘记这个问题,一旦我知道更多,就会更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 2018-03-07
    • 1970-01-01
    • 2022-01-12
    • 2017-09-29
    • 2020-09-11
    相关资源
    最近更新 更多