Оптимизация массовой индексации в эластичном поиске
У нас есть упругий поисковый кластер из 3 узлов следующих конфигураций
#Cpu Cores Memory(GB) Disk(GB) IO Performance
36 244.0 48000 very high
Машины находятся в 3 разных зонах: ЕС-Запад-1С, ЕС-Запад-1А, ЕС-Запад-1B.
Каждому экземпляру упругого поиска выделяется 30 ГБ пространства кучи.
мы используем вышеупомянутый кластер только для запуска агрегатов. Кластер имеет коэффициент репликации 1, и все строковые поля не анализируются, doc_values имеет значение true для всех полей.
Мы закачиваем данные в этот кластер, выполняя 6 экземпляров logstash параллельно (с размером пакета 1000)
Когда все больше экземпляров logstash запускаются один за другим, узлы кластера ElasticSearch начинают выбрасывать ошибку памяти.
Какие могут быть возможные оптимизации для ускорения массовой индексации в кластере?= Будет ли присутствие узлов кластера в одной зоне увеличивать массовую индексацию? Поможет ли добавление дополнительных узлов в кластере?
Пара шагов, предпринятых до сих пор
Увеличить размер очереди с 50 до 1000
Увеличьте интервал обновления с 1 секунды до 2 минут
Измененные сегменты сливаются до нуля ( https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing- performance.html)
Мы не можем установить коэффициент репликации равным 0 из-за несогласованности, если один из узлов выходит из строя.