CentOS Too Many Open Files 解决

问题:
在使用 WRK 对应用服务进行压测的时候,提示 "too many open files" 信息,导致无法启动测试。

原因:
CentOS 7.x 默认的打开文件数目限制为 1024,如果在使用其他软件出现 "too many open files" 的错误。

解决:
只需要更改 /etc/security/limits.conf 文件里面的内容,增加如下信息即可。

* soft nproc 80000
* hard nproc 80000
* soft nofile 80000
* hard nofile 80000

其中 * 代表所有用户,你可以指定特定的用户。

上面的 nproc 是允许创建的子进程数目,不能过大,防止 accidental fork bombs,一般 4096 比较合适
高级一点的做法:
将配置写到 /etc/security/limits.d/nofile.conf 这种不直接写到系统 limits 文件中,当 limits 需要升级时,不会丢失配置
另外一种做法:
在系统启动过程中,执行一次 ulimit -SHn 65533, 比如可以写到 /etc/rc.local 中,或者 /etc/profile 中。