Назад | Перейти на главную страницу

Как установить максимальное количество файловых дескрипторов для контейнера?

Я хочу запустить 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