почемуasticsearch отклоняет почти все запросы, когда пул потоков и очередь заполнены, вместо того, чтобы отвечать как можно больше и отклонять оставшиеся? - PullRequest
1 голос
/ 04 апреля 2020

У нас есть сайт для поиска по электронной почте с одним узлом и скоростью ~ 500 запросов в секунду. На этом изображении показаны метрики узла эластичного поиска за период в 3 часа:

enter image description here

На изображении, когда число очередей достигает 1000 (размер очереди), выполните запрос Скорость значительно снизилась. Кажется, чтоasticsearch паникует, когда и пул потоков, и очередь переполнены и начинают отклонять большинство запросов. Предполагаемое поведение должно быть как ответ на запросы в максимально возможной степени и отклонять только те, которые больше, чем реальная емкость. Мой вопрос заключается в том, является ли это поведение естественным или мы должны изменить наши конфигурации?

пул потоков и очереди вasticsearch :

узел содержит несколько пулов потоков в чтобы улучшить управление потреблением потоков в узле. Многие из этих пулов также имеют связанные с ними очереди, которые позволяют удерживать ожидающие запросы, а не отбрасывать их.

1 Ответ

2 голосов
/ 05 апреля 2020

Я думаю, что это нормальное поведение. кажется, что через некоторое время у вас появляются запросы на убийство ресурсов, и ваш thread_pool заполняется, и после этого очередь будет заполнена. когда thread_pool заполнен, это означает, что система обрабатывает существующие запросы и нет места для новых запросов.

Рекомендую проверить задачи и запросы:

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

получить отложенный поиск task_ID из вышеприведенной команды, использовать в следующей команде

curl -s [master-ip]:9200/_tasks/[task_ID]?pretty
...