Как повысить скорость поиска по запросу в Elastic Search?

Aug 16 2020

Хост - AWS от ElasticSearch, у меня 2 ТБ данных хранятся на 6 узлах и в 30 индексах по 10 шардов в каждом. Простой поиск по всем индексам очень медленный и занимает несколько минут.

Где я сделал ошибку? Это нормально, или у меня неправильные настройки, или, может быть, у меня хранится слишком много данных?

Мои настройки кластера:

"search": {
     "max_queue_size": "1000",
     "queue_size": "1000",
     "size": "4",
     "auto_queue_frame_size": "2000",
     "target_response_time": "1s",
     "min_queue_size": "1000"
},

Настройки моих узлов:

"os": {
     "refresh_interval_in_millis": 1000,
     "name": "Linux",
     "pretty_name": "CentOS Linux 7 (Core)",
     "arch": "amd64",
     "version": "4.15.0-1039-aws",
     "available_processors": 32,
     "allocated_processors": 2
}

Спасибо!

Ответы

3 ElasticsearchNinja Aug 16 2020 at 14:17

Это очень широкий вопрос с очень меньшим количеством информации, не могли бы вы предоставить дополнительную информацию, например:

  1. Сколько у вас данных и размер каждого шарда.
  2. Примеры поисковых запросов с указанием их среднего времени.
  3. размер кучи узлов данных и почему у вас allocated_processorsнамного меньше (2), чем доступных процессоров (32)
  4. Сколько документов вы получаете в поисковом запросе, т.е. параметр размера.
  5. Задержка поиска относительно отсутствия поисковых вызовов
  6. Поиск медленных журналов elasticsearch (ES)

Вы можете обратиться к моим 10 советам по повышению производительности поиска , а также рассказать мне значения некоторых параметров, упомянутых в советах, а также попробовать инструмент оптимизатора кластера для точной настройки параметров кластера и узлов ES.

Как обсуждалось в комментарии, пожалуйста, обратитесь к блогу opster search slow-log для более эффективного устранения проблемы.

1 Jaycreation Aug 19 2020 at 11:20
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica

Это уж слишком. Целевой размер осколка должен составлять около 50 ГБ. С вашими настройками у вас будет больше около 5 ГБ каждый. Вы можете сжать до 5 осколков или меньше и принудительно слить до 1 сегмента. Спектакли надо сильно улучшать.

После этого ознакомьтесь с другими полезными советами, которые дает Optsters в его блоге. Все они актуальны.