【问题标题】:nodetool repair taking a long time to completenodetool修复需要很长时间才能完成
【发布时间】:2018-03-09 17:25:31
【问题描述】:

我目前在 18 节点配置中运行 Cassandra 3.0.9。我们加载了相当多的数据,现在正在对每个节点进行修复。我的 nodetool 命令的脚本如下所示:

nodetool repair -j 4 -local -full

使用 nodetool tpstats 我看到有 4 个线程需要修复,但它们的修复速度非常慢。我有 1000 次维修,以这种速度需要数周时间。系统日志中列出了修复项目,但也列出了“重新分发索引摘要”。这是导致我缓慢的原因吗?有没有更快的方法来做到这一点?

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    修复可能需要很长时间,有时几天,有时几周。您可以通过以下方式改进:

    1. 运行主分区范围修复 (-pr) 这将只修复每个节点的主分区范围,总体上会更快(您仍然需要在每个节点上运行修复,一个一次)。
    2. 使用-j不一定是大赢家。当然,您将一次修复多个表,但会给集群带来更多负载,这可能会损害您的延迟。
    3. 您可能希望优先修复对您的应用程序最关键的键空间/表。
    4. 确保您的节点密度保持合理。每个节点 1 到 2TB。
    5. 优先重点修复宕机时间超过 3 小时的节点(假设 max_hint_window_in_ms 设置为默认值)
    6. 重点修复您为其创建逻辑删除的表(DELETE 语句)

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 2016-07-30
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多