Я хочу запустить elasticsearch в контейнере (а именно nspawn
) и требует, чтобы максимальное количество файловых дескрипторов было больше 1024 по умолчанию.
Это делается в контейнере, в systemd
служебный файл, подходящий для elasticsearch. Однако этот запрос при запуске службы не учитывается, предел остается 1024.
Затем я попытался изменить это ограничение в командной строке внутри контейнера, но считаю, что это невозможно (что и понятно):
root@elk:/etc/elasticsearch# ulimit -n 65536
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Я считаю, что этот предел должен быть установлен или разрешен на уровне хоста. Где мне это установить?
А отчет об ошибке для systemd
дал решение. Нужно создать или обновить /etc/systemd/system/systemd-nspawn@.service.d/ulimit.conf
и добавить LimitNOFILE=infinity
в [Service]
раздел:
mkdir -p /etc/systemd/system/systemd-nspawn@.service.d/
cat <<'EOF' >/etc/systemd/system/systemd-nspawn@.service.d/ulimit.conf
[Service]
LimitNOFILE=infinity
EOF
systemctl daemon-reload
systemctl stop systemd-nspawn@CONTAINER
systemctl start systemd-nspawn@CONTAINER