我有一个 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。
可能是什么原因?我缺少的那个设置在哪里?
我在这个 stackoverflow 帖子中找到了答案。
似乎添加:
编辑非 root 用户的限制就足够了。
但为了也改变 root 用户的限制,必须明确添加:
现在它按预期工作: