Мы используем кластер с общим 5 nodes (3 master 2 data) setting
.
Мы планируем проиндексировать документ размером до 100 МБ.
Мы с нетерпением ждем примерно 50K оборотов в минуту примерно такого размера и обеспечим возможности поиска по этому.
Один вид документа этой структуры
{
name: "abc",
id : "1",
elements:[
{
id:"1",
value: " Some long text .... assume 2000 chars"
},
....
....
..10K elements...
...
]
}
Предположим, что один из таких документов имеет размер ~100 MB
.
Мы планируем проиндексировать такой документ миллионами.
Попытка индексировать такой документ с помощью динамического сопоставления занимает около ~20 sec
с shards =50 and replication = 0
.
У нас включено сжатие gzip, и мы хотели бы масштабировать его и для других реплик.
Чтобы упомянуть настройки
на кластере у нас "heap_max": "69gb", "heap_used": "21.3gb",
на узле у нас есть "heap_committed": "17.4gb","heap_used": "5gb",
Также подкачка отключена, и мы используем SSD.
Наряду с этим мы играли с refresh_interval до 3 секунд. Это приводит к улучшениям, но мы не можем идти дальше 2 секунд.
Существуют ли какие-либо индексы, которые могут подсказать, сколько времени требуется ES для загрузки таких полезных нагрузок?
Есть ли какие-либо рекомендуемые оптимизации для такой огромной полезной нагрузки.
Мы уже смотрели - https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-indexing-speed.html
Примечание : мы планируем использовать вложенные файлы для обеспечения возможностей поиска. Эти цифры ниже, чем упомянутые выше. Приведенный выше случай должен быть наилучшим, поскольку мы используем простейшее возможное отображение.
PS: В настоящее время Es V2.4.1 (скоро мы проводим обновление)