Невозможно увеличить лимит открытых файлов свыше 999999 на 14.04+

Невозможно увеличить лимит открытых файлов свыше 999999 на 14.04+

Я пытаюсь увеличить лимит открытых файлов для пользователя root, а также для пользователя без прав root через /etc/security/limits.conf. Но, не могу пройти дальше 999999, все, что выше этого значения, возвращается к значению по умолчанию 1024, и я не могу установить его на неограниченное количество

Вот мойlimits.conf

* hard nofile 999999
* hard nofile 999999
root hard nofile 999999
root soft nofile 999999

Вышеуказанное работает отлично и ulimit -nвозвращает 999999.

Но если я увеличу значение на один шаг или до unlimitedили -1или infinityэто не сработает. ulimit -nreturn1024

Я ссылался здесь:limits.conf — файл конфигурации для модуля pam_limits | Ubuntu Manpage

Спасибо

решение1

Я знаю, что это опоздало на 10 месяцев, но вы дважды установили жесткий лимит для всех пользователей. Измените вторую строку на мягкий ulimit.

* hard nofile 999999
* soft nofile 999999
root hard nofile 999999
root soft nofile 999999

После этого вы должны увидеть:

$ ulimit -n
999999
$ 

Ваш файл всегда должен был работать для root, поскольку ограничения были определены правильно.

Более того, вы не можете использовать -1, бесконечность, неограниченный или что-то подобное, вы должны использовать буквальное значение. Максимальное поддерживаемое значение для этого определено в ядре и представлено в /proc/sys/fs/nr_open. В моих окружениях centos 7 и debian strech я получаю одно и то же значение:

$ cat /proc/sys/fs/nr_open
1048576
$

Вам также придется начать новый сеанс, чтобы лимиты обновились.

решение2

Чтобы это заработало, нужно изменить три файла:

  • /etc/security/limits.conf
  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

Вы уже добавили необходимые строки в первый файл, значит в двух других файлах нужна эта строка:

session required pam_limits.so

Пожалуйста, обрати внимание:

Большинство ресурсов забывают подчеркнуть, что ваши ограничения могут быть легко изменены чем угодно, отвечающим за выполнение ваших процессов. Если ulimit -n (запущенный как правильный пользователь) выдает вам только что установленное вами число, но cat /proc/{process_id}/limits все еще выводит низкое число, у вас почти наверняка есть менеджер процессов, скрипт инициализации или что-то подобное, что портит ваши ограничения. Вам также нужно помнить, что процессы наследуют ограничения родительского процесса.

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

Источник: https://underyx.me/2015/05/18/увеличение-максимального-числа-дескрипторов-файлов

Связанный контент