![Ubuntu:无法更改 root(所有用户)的打开文件数限制,可能是什么原因?](https://linux22.com/image/699140/Ubuntu%EF%BC%9A%E6%97%A0%E6%B3%95%E6%9B%B4%E6%94%B9%20root%EF%BC%88%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%EF%BC%89%E7%9A%84%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6%E6%95%B0%E9%99%90%E5%88%B6%EF%BC%8C%E5%8F%AF%E8%83%BD%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
我有一台 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 用户的限制,必须明确添加:
root soft nofile 65535
root hard nofile 65535
现在它可以按预期工作了:
root@sensu:~# ulimit -n
65535