我们在AWS环境中运行三节点集群。节点位于不同的AZ上以提供可用性。所有节点都在同一个VPC中,并且位于相同的安全组中,允许节点之间的所有流量。金色飞贼被定义为Ec2Snitch。 Cassandra版本是3.2.1。
即使所有节点都启动并运行,某些节点中每10秒创建一次提示的原因可能是什么? 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
有关进一步调查根本原因的任何想法?
答案 0 :(得分:0)
开始寻找的好地方是gc日志,因为它最有可能导致定期的周期性丢弃突变和提示。 GC大于写入超时(或接近它)可能会导致它。 GCs的原因很难确定,但常见的原因包括许多墓碑,非常宽(> 100mb)的分区,或者来自后面的压缩的sstables太多(可以签入nodetool cfstats
和compactionstats)。可以从提供更多堆空间开始,看看它是否有所改进。其他解决方案取决于原因。
可以检查tpstats是否有丢弃的突变,这将导致协调器写入提示并在节点为UP时立即传递。它不会告诉你原因,但可能能够识别导致更多它们的节点,然后你可以查看更多(cpu load?disk?例外日志?)。