0

在一个六节点 Cassandra 集群 [复制因子 2] 上,我们注意到一个节点被热点 [heavy load]。查看 tpstats 时,我可以看到 Flush writer 和 Replicate on write stage 的任务一直被阻塞。

我们只有一个数据目录[因此将 cassandra 配置为仅使用一个 flushwriter] 并且 memtable flush 的队列大小为 2

Heavily Loaded Node
Replicate-on-write-stage    32  4128    599249  48  371304
Flush-writer    0   0   85  0   24

Normal Node:
ReplicateOnWriteStage  0         0         753665         0      0
FlushWriter            0         0            137         0      25

所有节点的配置完全相同,我们使用 Murmur Partitioner。

是否有其他一些统计数据可以参考,以跟踪 CPU 负载问题并在单个节点上阻塞的写入阶段进行复制?

tpstats 中的这些计数器是历史计数器还是每 N 分钟刷新一次?

这里提到,块可能是因为 IO 不保留或巨大的行和排序[这增加了 cpu 负载]。后者可能是整个集群中一个节点异常负载的原因吗?

4

1 回答 1

0

增加堆大小应该是解决方案。在您的日志中,如果您看到发布的 GC 时间过长,那么 GC 暂停时间可能是罪魁祸首。

您能否也发布您的日志,以便我们找到更好的解决方案。

于 2015-06-08T04:30:33.677 回答