Эффект увеличения времени прокрутки в Elastic Search - PullRequest
0 голосов
/ 27 сентября 2018

Я работаю над проектом с использованием ElasticSearch и запрашиваю его для получения информации об участнике.В нем 3 миллиона записей.

Я провожу кампанию для 2 миллионов пользователей, и пользовательские данные присутствуют на asticsearch6.2 .Я запрашиваю ES и извлекаю записи партиями (по 50 записей за раз), используя scroll .Кроме того, я хочу сохранить контекст ПОИСК в течение 1 дня , потому что, если по какой-либо причине процесс запуска кампании завершится неудачей, я смогу возобновить кампанию с того места, где она была остановлена.Таким образом, я не смогу снова начать кампанию и начать.Я также сохраняю scrollID и буду использовать его для возобновления кампании.

Во время тестирования я обнаружил, что загрузка ЦП увеличилась на 50% (конфигурация ES: 2 узла с 4 осколками, работающими на AWS, экземплярТип: i3.xlarge.elasticsearch ) и загрузка ЦП остается неизменной до 50%.

Существует ли какая-либо связь между использованием ЦП и сохранением контекста поиска в течение 1 дня.КСТАТИ кампания занимает 6 часов.

1 Ответ

0 голосов
/ 27 сентября 2018

Из документации

Как правило, процесс слияния в фоновом режиме оптимизирует индекс путем объединения меньших сегментов для создания новых больших сегментов, при этом меньшие сегменты удаляются.Этот процесс продолжается во время прокрутки, но открытый контекст поиска предотвращает удаление старых сегментов, пока они еще используются.Вот как Elasticsearch может возвращать результаты начального поискового запроса, независимо от последующих изменений в документах.

Таким образом, с истечением срока действия курсора прокрутки до 24 часов кажется, что вы запрещаете Lucene объединять ваши сегменты,увеличивая нагрузку на ваши осколки.

Далее в документации есть объяснение того, как очистить курсор прокрутки:

Контекст поиска автоматически удаляется при превышении времени ожидания прокрутки.Однако сохранение открытых свитков имеет свою стоимость, как обсуждалось в предыдущем разделе, поэтому свитки должны быть явно очищены, как только прокрутка больше не используется с помощью API clear-scroll:

Вы должны попытатьсяочистить курсор после завершения кампании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...