在linux下面部署项目的时候,有时候会遇上Socket/File:Can’t open so many files 的问题,linux系统默认对一个进程打开的文件句柄(也包含打开的SOCKET数量)数量最多为1024,生产服务器中的项目很容易就会达到合格数量。
我们可以通过ulimit -a来查看linux系统所有限制值
open files数量也可以通过ulimit -n来查看,也可以通过ulimit -n number来修改,如ulimit -n 65535。但是ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效。如果要让open files的数量永久生效,则必须修改配置文件,修改方法如下:
1.在/etc/security/limits.conf添加内容:
* soft nofile 65535
* hard nofile 65536
这样就可以将文件句柄限制统一改成软限制:65535,硬限制65536,配置文件最前面的*代表domain,设置成*代表全局,另外你也可以针对不同的用户作出不同的限制。
2.在/etc/pam.d/login中添加一行:
session required /lib/security/pam_limits.so
修改完成之后重新登录系统即可生效。