it-swarm.cn

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

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

34
user5554

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

*               soft    nofile            2048
*               hard    nofile            2048

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

该文件本身和man limits.conf中都有一些摘要文档。这是通过pam_limits.so模块实现的,该模块针对/etc/pam.d/中配置的各种服务而调用。

而且,我必须承认,我有不知道 1024默认值的来源。相信我,我看着。我什至尝试不配置pam_limits模块,它仍然存在。它必须在某个地方进行硬编码,但是我不确定在哪里。

27
mattdm

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

1.Step:打开sysctl.conf并添加此行fs.file-max = 65536

$ vi /etc/sysctl.conf

添加新行并

fs.file-max = 65536

保存并退出。

2.步骤:

$ vi /etc/security/limits.conf

并添加下面提到的

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

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

# ulimit -a

....
open files                      (-n) 65535
14
minhas23

根据 Linux增加最大打开文件数/文件描述符(FD)的数量 的文章,可以通过在/etc/sysctl.conf中添加条目来增加打开文件的限制。

附加如下的配置指令:

fs.file-max = 100000

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

# sysctl -p

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

# cat /proc/sys/fs/file-max
14
Justin Ethier

但是,如果您尝试增加像MariaDB之类的服务的打开文件的最大数量(使用systemd )您必须直接在文件.service中执行

/lib/systemd/system/<servicename>.service

将是这样的:

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

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

[Install]
WantedBy=multi-user.target

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

8
Matheus Baldasso

补充:

您可能会在其他位置找到配置:/etc/security/limits.d/*.conf

我不得不修改它。没有它就行不通。格式与limits.conf

3
Waldemar Wosiński