Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Cassandra本地延迟P999大于超时?_Cassandra - Fatal编程技术网

为什么Cassandra本地延迟P999大于超时?

为什么Cassandra本地延迟P999大于超时?,cassandra,Cassandra,我们使用ColumnFamily.ReadLatency.999percentile来监视表的本地读取延迟。但是我们看到这个数字是巨大的,有时会超过1000秒。但是我们在yaml配置中设置的读取超时只有10秒。指标是否有问题,或者即使达到超时,读取仍在工作 在巨大的本地延迟期间,我确实看到挂起的读取阶段很高。看起来读取在超时后挂起 知道怎么回事吗?(至少从3.11开始)本地读取中没有任何内容会超时。消息在接收消息时被丢弃,而不是在处理的中间。因此,一旦本地读取开始,它不会停止,直到完成。这意味着

我们使用
ColumnFamily.ReadLatency.999percentile
来监视表的本地读取延迟。但是我们看到这个数字是巨大的,有时会超过1000秒。但是我们在yaml配置中设置的读取超时只有10秒。指标是否有问题,或者即使达到超时,读取仍在工作

在巨大的本地延迟期间,我确实看到挂起的读取阶段很高。看起来读取在超时后挂起

知道怎么回事吗?

(至少从3.11开始)本地读取中没有任何内容会超时。消息在接收消息时被丢弃,而不是在处理的中间。因此,一旦本地读取开始,它不会停止,直到完成。这意味着,如果它需要90秒,那么不管超时设置如何,它都将需要如此长的时间并被记录下来。客户机早已收到超时或自身超时,因此当复制副本发回此响应时,它将被丢弃(没有人在侦听,因此没有理由查看它)


花费这么长时间的原因有很多,但很可能是由于分区太大或逻辑删除太多(这通常会导致GC暂停)。

您能提供cfhistograms/cfstats的输出吗?cfhistograms为读/写延迟直方图返回NaN。但
最大值为50.00 9223372036854776000.00 9223372036854776000.00 802187438 7007506
。它们是巨大的,对我来说没有意义。你能把
nodetool cfhistograms
nodetool cfstats
的输出添加到你的原始问题中吗?或者包括一个指向github gist或pastebin的链接,然后其他人可以点击Chris。我们使用的是2.1.18。我认为应该是相同的情况,没有本地超时。我猜我们有太多的范围墓碑,导致了巨大的延迟。更糟糕的问题是,一些节点“永远”花在处理那些有太多等待读取的查询上,这会导致超时,并且我们的系统负载很高,因为读取了太多墓碑的sstable文件……有很多选项可以处理成吨的墓碑,但这在很大程度上取决于用例。不过这个问题有点离题了。