определить ulimit для пользователя root

8

мы считаем, что мы увеличили максимальное количество открытых файловых дескрипторов для пользователя root. Это было сделано путем добавления этой строки в /etc/security/limits.conf:

*         -    nofile            2048

Мы считаем, что мы подтвердили, что лимит пользователя root был увеличен, потому что мы можем сказать (не описано здесь), что в нашем приложении (solr - которое запускается пользователем root) открыто 1098 файлов. Однако мы не можем точно сказать, сколько открытых файлов разрешено пользователю root. Мы ожидаем, что эта команда сработает, но это не так:

$ sudo -u root -s "ulimit -Sn"
1024

Любые идеи? Спасибо!

andersonbd1
источник
Существуют ли другие записи для nofile в limit.conf? Может быть, это отменяется. Как насчет возможных ошибок синтаксического анализа пределов .conf. Можете ли вы прикрепить весь файл?
Эндрю Кейс
Вы работаете в Selinux? Что выводится из: ls -lZ /etc/security/limits.conf
Эндрю Кейс,

Ответы:

6

Получите PID процесса, который solrзапущен, а затем cat /proc/$SOLR_PID/limits- это скажет вам фактические пределы процесса.

Я бы порекомендовал запускать такие вещи как solrотдельный непривилегированный пользователь. При этом у вас есть несколько вариантов ( limit.conf или добавить ulimit -n 2048в сценарий инициализации, ...). Последний не такой блестящий, но работает для быстрой настройки и перезапуска демона.

RANT: не говорите мне, что вы не можете перезапустить, потому что вы потеряете обслуживание. Если это так, вам все равно нужно настроить HA :)

Мартин М.
источник
5

После изменения количества открытых файлов /etc/security/limits.confпользователь должен выйти и снова войти в систему, чтобы вступить в силу. Итак, попробуйте это:

$ sudo su -
# ulimit -Sn
кванты
источник
2

Я знаю, что на этот вопрос есть ответ, но это больше похоже на обходной путь, а не на реальное решение.

Согласно Ubuntu, это не ошибка, а проблема с документацией, см. Https://bugs.launchpad.net/ubuntu/+source/pam/+bug/65244.

Спасибо за ваш отчет. Как вы сказали, это не ошибка в pam, а проблема с документацией. Факт явного разрешения явно разрешать ограничения для пользователя root был рассмотрен некоторое время назад (30 августа 2000 г.), но для применения ограничений необходимо явно указать имя пользователя root.

Поэтому, если вы хотите изменить ulimit для всех пользователей, включая пользователя root, вы должны указать:

*         -    nofile            2048
root      -    nofile            2048
Zunderscore
источник