Невозможно увеличить лимит открытого файла сверх 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 -n
вернуть 1024
Я ссылался здесь: limit.conf - файл конфигурации для модуля pam_limits | Ubuntu Manpage
Спасибо
2 ответа
Я знаю, что это 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
$
Вы также должны начать новый сеанс для обновления лимитов.
Чтобы заставить это работать, нужно изменить три файла:
/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} / limit по-прежнему печатает младшее число, у вас почти наверняка есть менеджер процессов, сценарий инициализации или что-то подобное портит ваши пределы. Также необходимо помнить, что процессы наследуют ограничения родительского процесса.
Следовательно, если такой процесс существует, вам придется изменить файл конфигурации, чтобы заставить его работать.
Источник: https://underyx.me/2015/05/18/raising-the-maximum-number-of-file-descriptors