我可以“很好”的 Cassandra nodetool 修复吗

Posted

技术标签:

【中文标题】我可以“很好”的 Cassandra nodetool 修复吗【英文标题】:Can I "nice" Cassandra nodetool repair 【发布时间】:2017-03-01 16:32:05 【问题描述】:

如果我使用 "nice" 取消 Cassandra "nodetool repair" 命令的优先级,会出现任何问题吗?它会导致高 CPU“用户时间”负载,并对我们的生产系统产生负面影响,导致我们的 Usergrid 实现 API 超时。我看到有关限制网络吞吐量的文档,但 iowait 似乎不是问题。另外,有什么好的方法可以缓解这个问题吗?

【问题讨论】:

【参考方案1】:

nodetool 命令实际上并没有做任何工作。它只是在 C* 中调用 JMX 操作来启动修复,然后监听更新以打印出来。做得好不会有任何区别。修复有几个主要阶段

    构建 merkle 树(在每个节点上) 信息流变化 压实

可能是验证压缩(在一些版本上可以通过压缩节流来控制)或流(可以通过 nodetool 或 cassandra.yaml 设置流吞吐量)正在消耗你的 CPU。如果是这样可以尝试使用油门,但在某些版本中不会有任何影响。

修复完成后,在增量修复中会启动正常压实以进行反压实,如果流式传输有很多差异,也会进行全面修复。有些问题是特定于版本的,因此请注意日志以及当 CPU 较高时进行深入研究。

【讨论】:

以上是关于我可以“很好”的 Cassandra nodetool 修复吗的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra中的行键

Cassandra 是不是是一个很好的候选数据库,因为它必须每秒支持超过 100 次读/写操作?

Cassandra 错误:检测到泄漏

Spring 4 + Cassandra 3.4 + 不工作

使用具有指定 IP 地址和 OpsCenter 社区的 Cassandra CCM 的问题

多节点cassandra集群真的很慢