生产环境中有 18 个 Cassandra 集群节点,我需要使用 reaper 减少修复时间,我已安排使用 Reaper 版本 2.2.3 进行增量修复,值如下:
Segment count per node 16
Intensity 0.94
Repair threads 3
每个节点有4个CPU核心,所以我无法进一步增加修复线程的数量。 在 Reaper 的配置文件(cassandra-reaper.yaml)中我可以看到以下值:
segmentCountPerNode: 32
repairIntensity: 0.9
scheduleDaysBetween: 7
repairRunThreadCount: 15
hangingRepairTimeoutMins: 240
incrementalRepair: true
maxParallelRepairs: 2
我可以更改上述参数的值来减少整个修复过程的时间吗?
由于我使用增量修复,我的期望是修复每个节点需要不到一个小时,不超过 3 小时!
这里重要的一个方面是每个节点上的数据量。如果您在网络或磁盘 I/O 上遇到瓶颈,这就会发挥作用,并且在流数据(用于修复)时产生巨大影响。
因此,如果您(例如)有 18 个节点,每个节点 500GB,则将节点数加倍以拥有 36 个节点,每个节点 250GB 应该会有所帮助。是的,它应该花费相同的时间。但较小节点上的修复流挂起的可能性较小。