Riak 集群中的每个节点都想交接 54 个分区?

Riak 集群中的每个节点都想交接 54 个分区?

现在有一个 6 节点的 Riak 集群,它遇到了非常高的延迟和超时问题。当我去检查时,riak-admin transfers我得到了以下信息:

ubuntu@ip-172-31-38-8:~$ riak-admin transfers
'riak@prod-riak-19' waiting to handoff 54 partitions
'riak@prod-riak-18' waiting to handoff 54 partitions
'riak@prod-riak-17' waiting to handoff 53 partitions
'riak@prod-riak-16' waiting to handoff 53 partitions
'riak@prod-riak-15' waiting to handoff 53 partitions
'riak@prod-riak-14' waiting to handoff 53 partitions

此后我关闭了 Active Anti-Entropy,但仍然遇到高延迟,但其他问题似乎没有给我们带来问题。当我检查错误日志时,过去 5 小时内没有任何错误。

CPU 使用率如下:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4016 riak      20   0 3775m 564m 6224 S    9  3.8   3:34.90 beam.smp

所以机器显然没有达到极限。这是数据损坏的迹象吗?这里可能发生了什么?谢谢

答案1

当 Riak 节点启动时,它会为环中的每个分区生成一个 vnode,即使它不拥有这些分区也是如此。它不拥有的每个 vnode 都会尝试与拥有它的节点进行交接,交接成功后将关闭。这些交接受转账限额

假设环大小为 64,则每个节点将拥有 10 或 11 个 vnode。如果自上次重新启动整个集群以来没有完成任何交接,则您显示的传输输出是预期的。

相关内容