一、说明
Linux上的每个进程都有几个相关的限制,例如它可以同时打开的最大文件数。您可以通过运行以下命令找出当前打开的文件限制
ulimit -Sn # soft limit; can be raised up to the hard limit ulimit -Hn # hard limit
要查看所有限制,请运行
ulimit -Sa # soft limits ulimit -Ha # hard limits
调整这些限制的方式取决于特定的Linux系统(例如,是否基于systemd,甚至可能取决于systemd的版本)以及登录系统的方式(通过控制台,gdm,lightdm等)。
在这里,我描述了一些可以帮助您增加打开文件限制的步骤。很难预测哪些步骤将是相关的,但是如果您遵循所有步骤,则很有可能成功。
类似的说明也应适用于其他限制。
PAM
编辑文件
/etc/security/limits.conf
并添加以下行:
* - nofile 20000
其中20000是所需的限制。该
*
方法的所有用户,而-
手段设置软,硬限制。参见limits.conf(5)您可能需要
*
用特定的用户名替换。此外,要更改的限制root
,您可能需要写root
而不是*
检查下是否有冲突的声明
/etc/security/limits.d/*.conf
,因为这些文件优先。接下来,要确保应用这些设置,请找到
/etc/pam.d
与您的登录方法相对应的文件(/etc/pam.d/login
用于控制台,/etc/pam.d/lightdm
lightdm等),并添加以下行(除非已存在):
session required pam_limits.so
为了使更改生效,重新登录就足够了。
在Fedora 25上,仅PAM设置似乎适用于控制台登录,但不适用于lightdm登录。
如果你是一个基于systemd的系统上,尝试编辑文件
/etc/systemd/system.conf
和/etc/systemd/user.conf
和下添加以下线
[Manager]
部分(见systemd-system.conf(5) ):
DefaultLimitNOFILE=20000
然后重新启动系统。
我从https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1627769/comments/5 中发现了这种设置,单独改变
user.conf
是行不通的。必须同时更改user.conf
和system.conf两个文件。
二、文章说明
该篇文章我是翻译过来的,有能力的小伙伴看下面原文阅读,下面附上原文链接:
https://ro-che.info/articles/2017-03-26-increase-open-files-limit