Эффект API Elastic Search Scroll на процессоре - PullRequest
0 голосов
/ 18 декабря 2018

Как API прокрутки влияет на загрузку ЦП узла?Я испытываю высокую загрузку ЦП для API прокрутки на ES version 6.2.

Несмотря на то, что запрос выполняется один раз для извлечения всех данных, а затем данные выбираются с использованием scroll_id, мы наблюдаем скачки ЦП.

Кроме того, где хранится кэшированный результат?В памяти или на диске?

1 Ответ

0 голосов
/ 18 декабря 2018

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

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

Как описано here

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

Так что, если вы хорошо понимаете, кеша нет.Просто сегменты, на которые нацелен ваш запрос, останавливаются до истечения срока действия прокрутки.Поскольку сегмент является неизменным в Lucene, это гарантирует, что вы будете иметь последовательные результаты и что вы сможете прокручивать все данные, которые существовали при создании прокрутки.Но недостатком является то, что пока ваш «указатель» прокрутки существует, целевые сегменты будут оставаться открытыми и не удаляться.

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

Вы индексируете непрерывно и как долго это происходит?продолжительность вашей прокрутки?

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

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