我们有一个 CentOS 机器,我试图增加用户可以打开的最大文件数。目前,当我跑步时,ulimit -Sn
我得到1024
并ulimit -Hn
给出4096
. 我需要这个数字在 6000 左右。
在/etc/sysctl.conf
我设置fs.file-max = 100000
. 在/etc/security/limits.conf
我有以下设置:
username soft nofile 6000
username hard nofile 65535
Run Code Online (Sandbox Code Playgroud)
我已注销并重新登录,username
但仍然没有看到我的更改。我需要什么才能改变这个值?
我所拥有的/etc/security/limits.d
只是90-nproc.conf
. 我还确保没有在我的 .bash_profile 或 .bashrc 中调用 ulimit。
当我运行sysctl -p
它时,它会吐出我想要的设置,并显示我想要的值fs.file-max
。但是当我运行时ulimit -Sn
,我得到 1048。如果我尝试运行,sysctl --system
我得到error: Unknown parameter "--system"
.
Xav*_*cas 14
强制/etc/sysctl.conf
被读取再次运行sysctl -p
。
文件/etc/security/limits.conf
由登录 shell 读取,如果在 GUI 中,您应该关闭活动会话窗口。对于远程登录,relog 生效。
正如另一位海报所说,您需要让 sysctl 在正在运行的内核中设置该值。有几种方法可以在不重新启动的情况下设置该值:
sysctl -p /etc/sysctl.conf
sysctl -w fs.file-max=100000
sysctl --system
Run Code Online (Sandbox Code Playgroud)
恕我直言,最后一种方法是最好的,因为它复制了在启动期间应用设置的顺序(因此,如果您有冲突,它就会变得明显)。
注意:我不确定您使用的是哪个版本的 CentOS,但至少在 7 上我遇到了一个问题,如果 dracut 出于任何原因(例如安装新内核模块时)重建 initramfs,它将复制将 /etc/sysctl.* 的内容写入 initramfs,然后在该阶段由 systemd-sysctl 执行,即使您稍后从 /etc/sysctl.conf 中删除了这些条目。
在我的环境中,我编辑了 systemd dracut 模块以从该环境中排除 /etc/sysctl.*(因为一旦安装了 rootfs 并且 systemd-sysctl 再次运行,这些设置就会被设置)。这只是一个你可能会遇到的问题。
归档时间: |
|
查看次数: |
78719 次 |
最近记录: |