No Image

Birds by toikka blue bird 85 x 130 mm

СОДЕРЖАНИЕ
0
0 просмотров
15 февраля 2020

Примерная конфигурация

Начать нужно с того, что установить лимиты для юзера elasticsearch в системе. У меня Debian. Лимиты задаются в файле вот так:

elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch soft nofile 500000
elasticsearch hard nofile 500000

Теперь надо сказать java машине, что ей нужно забрать под «кучу» 8GB памяти. Для разных версий Elastic это делается по-разному. В 5.х нужно править файл конфигурации :

-Xms8g
-Xmx8g

По умолчанию там написано 2g. Если версия 2.х, то нужно вносить несколько правок в разных местах. Во-первых, определить переменную окружения в файле строкой:

ES_HEAP_SIZE=8g

Во-вторых, в том же файле нужно поправить строку:

MAX_LOCKED_MEMORY=unlimited

Там же поставьте сразу:

MAX_OPEN_FILES=500000

Теперь откройте файл и в нем поправьте строки:

LimitNOFILE=500000
LimitMEMLOCK=infinity

И наконец в файле раскомментируйте строку:

bootstrap.memory_lock: true

Что касается лимитов на открытие файлов, их надо переопределять и для версии 5.х в тех же файлах (строго говоря только в , если вы используете systemd для запуска сервиса, но сделайте в обоих, это не повредит). А вот параметр в файле в версии 5.х не нужен. Более того, он будет считаться ошибкой. В этом же файле можно дописать (изначально его там нет) еще один полезный параметр:

cluster.routing.allocation.node_initial_primaries_recoveries: 10

Он задает количество одновременных задач аллокации и проверки шардов при запуске кластера. Это может сократить время запуска, впрочем, не сильно. Если конечно у вас не SSD в качестве дисков. Тогда смело ставьте 1000. По умолчанию elastic запускает 4 таска одновременно.

И на последок несколько полезных консольных команд, которые всегда должны быть под рукой:

curl -XGET 'http://localhost:9200/_cluster/stats?human&pretty'

выдаст вам всю информацию о состоянии кластера: сколько индексов, сколько шардов, как расходуется оперативная память, сколько есть места на диске и т.п.

curl -s localhost:9200/_cat/shards?v

Выдаст информацию по шардам каждого индекса: где аллокирована, сколько занимает места на диске.

curl http://localhost:9200/_cluster/health/

компактный вывод информации о «здоровье» кластера.
А еще может пригодиться вот такая:

curl -XPUT 'localhost:9200/_settings' -d '
    {
        "index" : {
            "number_of_replicas" : 0
        }
    }'

Это переопределит настройку количества реплик в 0 для всех шардов всех индексов, в том числе уже созданных (количество реплик, в отличии от количества первичных шардов, можно переопределять «на лету»).

В документации рекомендуется отдавать Elastic половину оперативной памяти машины, при условии, что он живет на машине один. Хороший совет, но мы маленькие, у нас денег нет. Я отдаю 8 гиг из 12-и, при том, что у меня на этой же машине еще Logstash и Kibana. Нормально всё работает.

В следующей заметке напишу о работе с Elasticsearch из питона.

Список источников

  • esguardian.ru

Похожие статьи

Комментировать
0
0 просмотров

Если Вам нравятся статьи, подпишитесь на наш канал в Яндекс Дзене, чтобы не пропустить свежие публикации. Вы с нами?

Adblock
detector