我可以“很好”的 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 是不是是一个很好的候选数据库,因为它必须每秒支持超过 100 次读/写操作?
Spring 4 + Cassandra 3.4 + 不工作