当我们需要系统能同时打开的文件数量增加时,我们需要调节如下参数:
这个数值太小,我们可以使用如下方法修改:
-
编辑 /etc/security/limits.conf:
-
用文本编辑器以 root 权限打开文件(例如,
sudo nano /etc/security/limits.conf
)。 -
添加以下行,为所有用户设置软限制和硬限制:
markdownCopy code * soft nofile 10000 * hard nofile 30000
星号
*
将限制应用于所有用户。你可以将其替换为特定的用户名,以便只为该用户应用限制。 -
-
PAM 配置:
-
确保 PAM(可插拔认证模块)系统配置为在会话启动时读取 limits.conf 文件。这通常是默认设置,但你可以通过检查
/etc/pam.d/common-session
和/etc/pam.d/common-session-noninteractive
文件的内容来验证。你应该找到像这样的行:swiftCopy code session required pam_limits.so
-
-
应用于服务管理器:
- 如果你使用如 systemd 这样的服务管理器以服务的形式运行进程,你可能需要在服务单元文件中设置
LimitNOFILE
值。
- 如果你使用如 systemd 这样的服务管理器以服务的形式运行进程,你可能需要在服务单元文件中设置
-
Systemd 用户会话:
- 对于使用 systemd 的系统,可能需要为 systemd 管理的用户会话设置限制。你可以通过在
/etc/systemd/user.conf
和/etc/systemd/system.conf
中创建limits.conf
文件为系统服务这样做。
- 对于使用 systemd 的系统,可能需要为 systemd 管理的用户会话设置限制。你可以通过在
-
重启或重新登录:
- 在更改限制之后,你通常需要重启系统或者注销并作为用户重新登录,才能看到更改生效。
-
检查覆盖情况:
- 如果你在
limits.conf
中设置了这些值,但在检查ulimit -n
时仍看到不同的值,那么可能有脚本或配置文件在登录或服务启动时覆盖了这些值。检查登录脚本,如.bashrc
、.bash_profile
、/etc/profile
以及/etc/profile.d/
中的文件。
- 如果你在
-
特定用户设置:
- 如果你想为特定的非 root 用户设置限制,请在
limits.conf
文件中将*
替换为用户名。
- 如果你想为特定的非 root 用户设置限制,请在
当然,不幸的我以上办法全部不好用,所以我只能委曲求全:
- 首先进入
root
模式:
- 查看此时参数.
3.ulimit -n 1024576
命令来修改
修改成功,但也只是在当前窗口,所以需要每次都要重新修改,呜呜呜