【问题标题】:Cassandra hinted handoffs in AWS environment even when all nodes are up and running即使所有节点都启动并运行,Cassandra 也暗示 AWS 环境中的切换
【发布时间】:2017-08-03 14:37:02
【问题描述】:

我们有一个在 AWS 环境中运行的三节点集群。为了可用性,节点位于不同的可用区。所有节点都在同一个 VPC 和相同的安全组中,允许节点之间的所有流量。飞贼被定义为 Ec2Snitch。 Cassandra 版本是 3.2.1。

即使所有节点都已启动并运行,在某些节​​点中每十秒创建一次提示的原因可能是什么? system.log 实际上是浮动的,带有如下消息。但是,在 system.log 中找不到相关的警告或错误。目前写入集群的数据量非常少,负载也非常低。

问题出现是因为 3.2.1 版本没有正确删除与提示相关的 crc32 文件,并且我们的文件系统中的 inode 用完了。

INFO  [HintsDispatcher:2] 2017-08-02 13:13:42,765 HintsDispatchExecutor.java:252 - Finished hinted handoff of file 4c3e3e47-fcc2-4bff-a3a7-e2560f024173-1501679605217-1.hints to endpoint 4c3e3e47-fcc2-4bff-a3a7-e2560f024173

对进一步调查根本原因有什么想法吗?

【问题讨论】:

  • 需要注意的一点与问题无关,3.2.1 有缺陷且远非稳定(这在 3.x 版本中非常早期)。你真的应该升级到 3.11.x 分支。

标签: amazon-web-services amazon-ec2 cassandra


【解决方案1】:

gc 日志是开始查找的好地方,因为它最有可能导致定期删除突变和提示。大于写入超时(或接近它)的 GC 可能会导致它。 GC 的原因更难确定,但常见的原因包括许多墓碑、非常宽 (>100mb) 的分区或压缩落后的 sstable 太多(可以查看 nodetool cfstats 和 compactionstats)。可以从提供更多堆空间开始,看看它是否有所改善。其他解决方案取决于原因。

也可以检查 tpstats 是否有丢弃的突变,这将导致协调器写入提示并在节点启动时立即传递。它不会告诉您原因,但可能能够识别导致更多节点的节点,然后您可以查看更多节点(cpu 负载?磁盘?日志中的异常?)。

【讨论】:

    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2020-10-29
    • 2010-09-25
    • 2017-11-14
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多