Оптимальная настройка сервера Elasticsearch

elasticsearch logo Elasticsearch

После установки Elasticsearch требуется настройка как Linux сервера, так и самого Elasticsearch.

Настройка службы Elasticsearch

Для корректного выделения памяти необходимо отредактировать файл /usr/lib/systemd/system/elasticsearch.service добавить следующий параметр

В секцию [Service] добавить параметр

До 5 версии Elasticsearch включительно, секция Service располагалась в конце файла и можно было добавить строку в файл, теперь в конце расположена секция [install] и добовления в нее параметра LimitMEMLOCK приведет к аварийному завершению службы.

в файле /etc/default/elasticsearch

необходимо раскоментировать строку

для применения настроек, выполните команду

так же необходимо убедиться, что в настройках самого Elastcisearch (/etc/elasticsearch/elasticsearch.yml) установлена (раскоментирована) опция

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

Оптимизация настроек Linux для Elasticsearch

Не отключайте файл подкачки (SWAP) в системе это не принесет какой либо пользы, только вред.

Для корректной работы Elasticsearch в системе надо внести небольшие изменения.

В частности снизить интенсивность использования файла подкачки, поднять максимальное количество соединений, максимальное число регионов памяти, доступных процессу и так же поднять максимальное количество открытых файлов.

для применения настроек выполните команду

Увеличение лимитов для Elasticsearch

Для корректной работы, необходимо увеличить лимиты количество открываемых файлов. В противном случае при работе могут водникать проблемы к доступу к файлам данных Elasticsarch.

Настройка выделения памяти под процесс Elasticsearch

Выделяем половину доступной памяти, остальное будет израсходовано файловым кешем Lucene.

Прежде чем продолжить, рекомендуется ознакомиться со статьей Elasticsearch Heap: Размер и Свопинг

Так же рекомендуется включить файл подкачки (swap) без него, при некоторых конфигурациях  Elasticsearch может не запуститься.

Память необходимо выделять в мегабайтах, для того что бы избежать не корректного округления.

Размер выделяемой памяти не должен превышать 64GB. Из за особенностей работы java машины. Это не значит что система не будет работать при превышении данного показателя, но при этом эффективность работы будет значительно ниже и память будет использоваться не эффективно.

Открываем файл настроек

Для указания потребления памяти, необходимо изменить опции запуска процесса -xms и -xmx

Пример настроек

В данном случае Elasticsearch будет выделено 16 GB оперативной памяти.

Elasticsearch будет выделено 64 GB оперативной памяти.

Elastcisearch может занять всю доступную память, необходимо оставлять свободной не менее 1 ГБ ОЗУ для данных операционной системы и других служб, в противном случае могут возникнуть проблемы быстродействия.

Применение настроек Elasticsearch

Для применения настроек, необходимо перезапустить службу Elasticsearch

Avatar for Gnostis
Gnostis
Добавить комментарий