Ubuntu: Невозможно изменить ограничение на количество открытых файлов для root (для всех пользователей), в чем может быть причина?
У меня есть сервер Ubuntu 16.04.
Когда я запускаю как root, ulimit -n
Я получаю 1024
Когда я запускаю его как мой пользователь, я получаю 65535.
Но я хочу убедиться, что для всех пользователей, включая root, ограничение открытых файлов установлено на 65535.
Проблема в том, что я сделал все, что я знаю, чтобы изменить его, и все же, для root это показывает 1024.
Вот что я сделал:
root@sensu:/etc/security/limits.d# cat 90-nofiles.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
root@sensu:/etc/security# grep nofile limits.conf
# - nofile - max number of open files
* soft nofile 65535
* hard nofile 65535
root@sensu:/etc/security# grep file-max /etc/sysctl.conf
fs.file-max = 65536
Конечно, я побежал sysctl -p
,
Проблемный процесс Redis:
root@sensu:/proc# grep "open files" /proc/1487/limits
Max open files 4096 4096 files
Глядя на файл инициализации redis:
root@sensu:/proc# grep ulimit /etc/init.d/redis-server
ulimit -n 100001
Как видно из примеров, нет никаких оснований для того, чтобы этот предел составлял 1024, и все же... это 1024.
Что может быть причиной? Где тот параметр, который мне не хватает?
1 ответ
Я нашел ответ в этом сообщении stackoverflow.
Вроде как добавление:
* soft nofile 65535
* hard nofile 65535
Достаточно при редактировании лимита для некорневых пользователей.
Но чтобы изменить ограничения и для пользователя root, его нужно добавить явно:
root soft nofile 65535
root hard nofile 65535
Теперь это работает как задумано:
root@sensu:~# ulimit -n
65535