我有一些时间序列数据,我过去把它们放在一个ElasticSearch索引中。现在我已经转移到每天1个索引,索引前缀为logs-。目前有60个指数,我正在滚动调用logs-*。但我发现在4次调用后,我得到了错误too many scroll contexts。
logs-
logs-*
too many scroll contexts
GET _nodes/stats/indices/search "scroll_current": 150
似乎每次调用都创建了150个滚动上下文。为什么会这样呢?如果有必要的话,每个索引的碎片数是5。
pod7payv1#
我本来想发表评论的,但由于代表性低,我不能。这能帮助吗?https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#_clear_scroll_api您也可以尝试在集群设置中调整该值:search.max_open_scroll_context
search.max_open_scroll_context
hiz5n14c2#
我真的不明白为什么你会有这么多。但它发生在我身上,客户端开始卷轴,并没有完成他们,然后这个上下文将保持开放,直到他们的到期时间默认为5分钟。这甚至会杀死集群,如果卷轴有大量的项目匹配。
3xiyfsfu3#
在我的情况下,我有一个滚动电流约65为一个单一的滚动。通过测试一个没有标记器定义的测试索引,我得到了每个scroll的scroll_current,然后通过添加一个带有一些字段的索引定义和一个ngram标记器,我得到了高scroll_current。我的假设是,标记器必须消耗更多的资源。
3条答案
按热度按时间pod7payv1#
我本来想发表评论的,但由于代表性低,我不能。这能帮助吗?https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#_clear_scroll_api
您也可以尝试在集群设置中调整该值:
search.max_open_scroll_context
hiz5n14c2#
我真的不明白为什么你会有这么多。但它发生在我身上,客户端开始卷轴,并没有完成他们,然后这个上下文将保持开放,直到他们的到期时间默认为5分钟。这甚至会杀死集群,如果卷轴有大量的项目匹配。
3xiyfsfu3#
在我的情况下,我有一个滚动电流约65为一个单一的滚动。
通过测试一个没有标记器定义的测试索引,我得到了每个scroll的scroll_current,然后通过添加一个带有一些字段的索引定义和一个ngram标记器,我得到了高scroll_current。
我的假设是,标记器必须消耗更多的资源。