Datastax Cassandra维修服务怪异估计和重载

时间:2015-06-17 08:39:25

标签: cassandra datastax datastax-enterprise opscenter

我有一个5节点的集群,大约有1TB的数据。启用Vnodes。 Ops Center版本5.12和DSE 4.6.7。我想在10天内进行全面维修,并在Ops Center使用维修服务,这样我就不会在集群上施加不必要的负担。

我面临的问题是维修服务负担过重,工作速度太快。它在24小时内进步约30%(根据Ops中心)。我甚至试图将它改为40天没有任何区别。

问题,

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

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用OpsCenter作为关于数据存储位置和群集中发生情况的指南,但它实际上更像是一个仪表板。真正的“磁带故事”来自服务器节点(如
  2. )上的命令行“nodetool”
      

    #壳> nodetool status

         

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

    您使用什么类型的压缩?

    你问了一个'魔术子弹'问题,因为可能有几个因素在起作用。这些是示例,但不限于:

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

    B中。您对复制和网络策略的设置类型。

    ℃。数据录入点,Cassandra如何获取数据。你在用Python吗? PHP?什么输入数据?您可以从具有错误PHP驱动程序的集群中获得时髦的行为(例如)

    d。 Vnodes很好,但可能很糟糕。您正在运行什么版本的Cassandra?你可以通过CQLSH找到cqlsh -3然后输入'show version'

    电子。压实类型是一个很大的杀手。您使用的是SizeTieredCompaction还是LevelCompaction?

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

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

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

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

    还要检查初始应用程序层如何将数据插入Cassandra?用PHP?蟒蛇?正在使用哪些驱动程序? Cassandra版本中存在重大错误< 1.2.10使用某些Thrift连接器,例如Java驱动程序或PHPcassa驱动程序,因此您可能需要升级Cassandra并进行一些驱动程序更改。

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