gpt4 book ai didi

elasticsearch - 为什么当线程池和队列已满时,elasticsearch 拒绝几乎所有查询,而不是尽可能多地回答并拒绝剩余的查询?

转载 作者:行者123 更新时间:2023-12-02 22:54:05 25 4
gpt4 key购买 nike

我们有一个用于电子商务网站的单节点 Elasticsearch ,每秒约 500 次查询。
此图显示了 3 小时内的 Elasticsearch 节点指标:

enter image description here

图中,当队列数达到 1000(队列大小)时,查询率显着下降。当线程池和队列都已满并开始拒绝大多数查询时,elasticsearch 似乎会出现 panic 。预期的行为应该像尽可能多地响应查询,并且只拒绝那些超过实际容量的查询。我的问题是这种行为是自然的还是我们应该改变我们的配置?

thread pool and queues in elasticsearch :

a node holds several thread pools in order to improve how threads memory consumption are managed within a node. Many of these pools also have queues associated with them, which allow pending requests to be held instead of discarded.

最佳答案

我认为这是一种正常的行为。似乎在某些时候您有资源杀手查询并且您的 thread_pool 已满,之后队列将满。当 thread_pool 已满时,表示系统正在处理现有查询,并且没有空间进行新查询。

我建议检查任务和查询:

curl -s [master-ip]:9200/_cat/tasks?v

从上面的命令中获取延迟的搜索 task_ID 并在下面的命令中使用
curl -s [master-ip]:9200/_tasks/[task_ID]?pretty

关于elasticsearch - 为什么当线程池和队列已满时,elasticsearch 拒绝几乎所有查询,而不是尽可能多地回答并拒绝剩余的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61033751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com