SystemdDoctor
служба не работает elasticsearch ядро ресурсы

Elasticsearch: max virtual memory areas vm.max_map_count is too low

Elasticsearch проверяет системные настройки при запуске и отказывается работать, если vm.max_map_count меньше 262144. Это осознанное поведение: при заниженном значении служба работала бы нестабильно.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Значение ядра ниже требуемого

    Значение по умолчанию в дистрибутивах меньше требуемого Elasticsearch. Проверка при старте это ловит.

  2. Значение задано только до перезагрузки

    Команда sysctl без файла настроек действует до перезагрузки. Служба поднимается сейчас и отказывается после ребута.

  3. Служба работает в контейнере

    Настройка ядра общая для машины, и изнутри контейнера её не изменить. Значение нужно поднимать на хосте.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Текущее значение — первое, что проверяет Elasticsearch.

sysctl vm.max_map_count

Результаты всех проверок при запуске.

sudo tail -40 /var/log/elasticsearch/elasticsearch.log | grep -i bootstrap

Другие требования: дескрипторы и блокировка памяти.

systemctl show elasticsearch -p LimitNOFILE -p LimitMEMLOCK

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Значение ядра ниже требуемого
Почему происходит
Значение по умолчанию в дистрибутивах меньше требуемого Elasticsearch. Проверка при старте это ловит.
Как проверить
Посмотрите текущее значение.
sysctl vm.max_map_count
Как исправить
Поднимите значение и закрепите его в файле настроек ядра, иначе после перезагрузки всё вернётся.
echo "vm.max_map_count = 262144" | sudo tee /etc/sysctl.d/99-elasticsearch.conf && sudo sysctl --system
2. Значение задано только до перезагрузки
Почему происходит
Команда sysctl без файла настроек действует до перезагрузки. Служба поднимается сейчас и отказывается после ребута.
Как проверить
Поищите настройку в файлах.
grep -r max_map_count /etc/sysctl.conf /etc/sysctl.d/ 2>/dev/null
Как исправить
Создайте файл в /etc/sysctl.d с нужным значением.
3. Служба работает в контейнере
Почему происходит
Настройка ядра общая для машины, и изнутри контейнера её не изменить. Значение нужно поднимать на хосте.
Как проверить
Определите окружение.
systemd-detect-virt
Как исправить
Поднимите значение на хост-машине: контейнеры используют настройки ядра хоста.

Пример вывода

Проверка при запуске не прошла. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

× elasticsearch.service - Elasticsearch
     Active: failed (Result: exit-code) since Mon 2026-09-15 19:02:41 MSK; 3s ago

elasticsearch[4800]: ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
elasticsearch[4800]: bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация Elasticsearch: системные настройки документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено на машине со значением по умолчанию 65530.
    собственная проверка, systemd 255
    сверено 15 сентября 2026