Мы развернули ES 2.0 на 3 узлах EC2 c4.4xlarge (16 ядер, 32gb памяти), выделив 16G для ES, подключив 500 ГБ с IO1/4000 IOPS на каждом.Медленная скорость индекса Elasticsearch
Проблема: Мы ожидаем высокую производительность от этой аппаратной конфигурации, однако очень низкая скорость индексации наблюдается.
Наш документ размером около 10-50 КБ, мы используем транспортный клиент Java для вставки. Скорость была в порядке для первых 50 000 при примерно 1000/секунду и резко замедлялась до 100-200/сек.
В то же время мы ищем на низкое потребление ресурсов:
- CPU составляет около 1-20% только (16 Ядро процессора)
- IO записи составляет около 4-10Mb/второй только
- потребление памяти составляет около 20-30% всего
Требования: так что я не могу понять, почему это происходит так медленно, в то время как все ресурсы настолько свободны, Что я могу сделать для повышения эффективности? Спасибо.
Вот конфигурационный файл мы используем:
cluster.name: {{ env }}-{{ app }}
path.data: /data/es
path.logs: /data/es-logs
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["xxxx"]
bootstrap.mlockall: true
threadpool.search.queue_size: 300
threadpool.index.type: fixed
threadpool.index.size: 16
threadpool.index.queue_size: 250000
index.refresh_interval: 1s
index.translog.flush_threshold_ops: 50000
indices.memory.index_buffer_size: 30%
indices.memory.min_shard_index_buffer_size: 12mb
indices.memory.min_index_buffer_size: 96mb
script.inline: on
script.indexed: on
http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/
Вот HTOP и IOSTAT во время выполнения задания:
Вы делаете массовое индексирование? сколько реплик у вас есть? сколько настроек ES по умолчанию вы изменили? – ChintanShah25
мы симулируем высокую одновременную запись. 5 осколков и 2 реплики. Я обновил файл настроек FYI. –
Вы выполняете 'операции поиска' при' объемном индексировании'? также запросы индексирования идут на один узел или все три? – ChintanShah25