如何增加所有进程的打开文件限制?

43 rhel limit resources ulimit

我可以使用 ulimit 但我认为这只会影响我的 shell 会话。我希望增加所有进程的限制。这是在红帽上。

mat*_*tdm 32

贾斯汀的回答告诉您如何提高整个系统可用的打开文件总数。但我认为您是在问如何在全球范围内提高每个用户的限制。答案是将以下几行添加到/etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048
Run Code Online (Sandbox Code Playgroud)

(其中 * 表示所有用户。)

该文件本身和man limits.conf. 这是通过pam_limits.so为 中配置的各种服务调用的模块实现的/etc/pam.d/。

而且,我不得不承认,我不知道1024 默认值从何而来。相信我,我看了。我什至尝试在没有配置 pam_limits 模块的情况下,它仍然存在。它必须在某处进行硬编码,但我不确定在哪里。

  • 嗯...我设置正确。退出 SSH 并重新进入,我的软限制仍然设置为 1024。是否有什么我遗漏的东西可以使这个“活跃”?谢谢。 (4认同)

小智 22

增加Linux中ulimit打开文件的最大数量

1.步骤:打开sysctl.conf 并添加这一行 fs.file-max = 65536

$ vi /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

添加新行和

fs.file-max = 65536
Run Code Online (Sandbox Code Playgroud)

保存并退出。

2.步骤:

$ vi /etc/security/limits.conf
Run Code Online (Sandbox Code Playgroud)

并在下面添加提到的

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535
Run Code Online (Sandbox Code Playgroud)

保存并退出检查最大打开文件 ulimit

# ulimit -a

....
open files                      (-n) 65535
Run Code Online (Sandbox Code Playgroud)


Jus*_*ier 15

根据文章Linux 增加最大打开文件数/文件描述符 (FD),您可以通过在/etc/sysctl.conf.

附加一个配置指令,如下所示:

fs.file-max = 100000
Run Code Online (Sandbox Code Playgroud)

然后保存并关闭文件。用户需要注销并重新登录才能使更改生效,或者他们只需键入以下命令:

# sysctl -p
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下命令验证您的设置:

# cat /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)


小智 12

但是,如果你想增加的打开文件的最大数量的服务像MariaDB的或别的东西(使用systemd),您必须直接在文件中。服务做

/lib/systemd/system/<servicename>.service
Run Code Online (Sandbox Code Playgroud)

将是这样的:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

完整的答案在这里:为 systemd 在 CentOS 7 上启动的进程增加 nproc


Wal*_*ski 5

补充:

您可能会在不同的地方找到配置:/etc/security/limits.d/*.conf

我必须修改它。没有它它就无法工作。格式与以下相同limits.conf