为什么在ElasticSearch中会创建150个滚动上下文?

mspsb9vt  于 2022-11-07  发布在  Lucene
关注(0)|答案(3)|浏览(207)

我有一些时间序列数据,我过去把它们放在一个ElasticSearch索引中。现在我已经转移到每天1个索引,索引前缀为logs-
目前有60个指数,我正在滚动调用logs-*。但我发现在4次调用后,我得到了错误too many scroll contexts

GET _nodes/stats/indices/search
"scroll_current": 150

似乎每次调用都创建了150个滚动上下文。为什么会这样呢?如果有必要的话,每个索引的碎片数是5。

pod7payv

pod7payv1#

我本来想发表评论的,但由于代表性低,我不能。这能帮助吗?https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#_clear_scroll_api
您也可以尝试在集群设置中调整该值:search.max_open_scroll_context

hiz5n14c

hiz5n14c2#

我真的不明白为什么你会有这么多。但它发生在我身上,客户端开始卷轴,并没有完成他们,然后这个上下文将保持开放,直到他们的到期时间默认为5分钟。这甚至会杀死集群,如果卷轴有大量的项目匹配。

3xiyfsfu

3xiyfsfu3#

在我的情况下,我有一个滚动电流约65为一个单一的滚动。
通过测试一个没有标记器定义的测试索引,我得到了每个scroll的scroll_current,然后通过添加一个带有一些字段的索引定义和一个ngram标记器,我得到了高scroll_current。
我的假设是,标记器必须消耗更多的资源。

相关问题