0

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

4

1 回答 1

1

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

  1. 构建默克尔树(在每个节点上)
  2. 流变化
  3. 压实

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

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

于 2017-03-01T17:47:17.073 回答