Cassandra - 频繁的跨节点超时

Posted

技术标签:

【中文标题】Cassandra - 频繁的跨节点超时【英文标题】:Cassandra - Frequent cross-node timeouts 【发布时间】:2021-01-12 19:56:19 【问题描述】:

我正在使用 debug.log 中的以下日志观察 Cassandra 集群中的超时:

time 1478 msec - slow timeout 500 msec/cross-node

这是否表示读取请求花费了1378 ms 让其他副本响应?

NTP 与此集群同步,数据较少且分配了良好的 CPU 和内存。

设置cross_node_timeout: true会有帮助吗?

Cassandra 版本:3.11.6

谢谢

【问题讨论】:

【参考方案1】:

日志中报告的值 1478 毫秒是执行特定查询的时间记录器。因为它是跨节点的,这表示该查询/操作是跨节点执行的。这只是一个警告,您的查询运行速度较慢。慢查询超时默认值为500ms,可以在cassandra.yaml中通过slow_query_log_timeout_in_ms设置。

如果这是您的日志中的一个关闭日志,那么它可能是由 GC 引起的。如果它一直显示,那么您的环境(网络等)或您的查询有问题。

关于cross_node_timeout: true的属性,它是通过CASSANDRA-4812介绍的。此属性的目的是避免在 NTP 服务器未跨节点同步的情况下超时。此属性的默认值为 false。由于 NTP 在您的集群上同步,您可以将其设置为 true,但它不会帮助您收到消息。

【讨论】:

以上是关于Cassandra - 频繁的跨节点超时的主要内容,如果未能解决你的问题,请参考以下文章

解决 Cassandra Coordinator 节点写入超时的方法

Cassandra“写超时”的本质是啥?

Meet Professor Cassandra Fraser

Cassandra 更新无法正常工作

Cassandra 数据模型

Cassandra 简介