Ubuntu:无法更改 root(所有用户)的打开文件数限制,可能是什么原因?

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 用户的限制,必须明确添加:

root soft     nofile         65535
root hard     nofile         65535

现在它可以按预期工作了:

root@sensu:~# ulimit -n
65535

相关内容