我们的 Cassandra 3.10 集群之一的 debug.log 文件经常出现类似于“FailureDetector.java:457 - 忽略......的间隔时间”的消息
即使集群处于空闲状态,也会显示这些消息。我在这个 6 节点集群(两个数据中心各 3 个节点)的每个节点上以大约每秒 1 条的速度看到消息。
有人可以告诉我这些消息的原因是什么以及它们是否值得关注吗?
我们有几个其他小型集群支持相同的应用程序(不同的环境),而且我看到此消息的频率要低得多(相隔几天)。
The FailureDetector
负责决定节点是否被视为 UP 或 DOWN。
八卦进程直接跟踪来自其他节点的状态(节点
直接与它闲聊)和间接(节点进行交流)
二手、三手等等)。而不是有一个固定的门槛
为了标记故障节点,Cassandra 使用应计检测
计算每个节点阈值的机制,考虑到
网络性能、工作负载和历史条件。期间
八卦交换,每个节点维护一个滑动窗口
来自网络中其他节点的八卦消息的到达间隔时间
簇。
Here https://github.com/apache/cassandra/blob/8b3a60b9a7dbefeecc06bace617279612ec7092d/src/java/org/apache/cassandra/gms/FailureDetector.java#L450-L474您可以找到源代码,其中提供了日志消息。它被设置为 DEBUG 级别,因为它们可能有助于追踪导致延迟的实际问题,但本身并不表明问题。
换句话说:您的节点测量发送到其他节点的每个八卦消息的确认延迟,例如:X nanosec for IP address1, Z nanosec for IP address2, etc.
如果其中之一X
or Y
高于预期的 2 秒阈值,如MAX_INTERVAL_IN_NANO
,将会被举报。
可能导致此日志消息的问题:
- 节点上的巨大负载:例如太多的大分区
- 高压:例如排序时间内查询过多
- 网络连接不良
添加了额外的 FailureDetector 日志记录:
通过 JMX 公开故障检测器的 phi 值并调整调试
和跟踪记录(卡桑德拉-9526 https://issues.apache.org/jira/browse/CASSANDRA-9526?attachmentOrder=desc)
而且我还发现了这个未解决的问题,可能与您的问题有关:
当网络不稳定时,故障检测器变得更加敏感(卡桑德拉-9536 https://issues.apache.org/jira/browse/CASSANDRA-9536)
我还发现this http://www.cooldoger.com/2016/10/cassandra-gossip-and-failure-detection.html关于八卦和故障检测的文章非常有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)