通过ulimit -n
可以看到linux"最大打开文件数量"的默认值是1024
。对于一些程序,如web服务,太小不够用。由于建立SOCKET会占用一个系统句柄,效果类似于打开了一个文件。LINUX默认的最大文件打开个数是1024(可能不同内核版本不一样),所以如果并发太多连接时就会报错。
可通过下面几个步骤修改:
vi /etc/pam.d/login
添加:
session required /lib/security/pam_limits.so
注意看这个文件的注释
vi /etc/security/limits.conf
在最后添加:
*
表示所有用户,如果想仅设置某一个用户,则换成其登录名,如www
。
设置的数值与硬件配置有关,别设置太大了。
vi /etc/sysctl.conf
在最后添加:
fs.file-max = 819200
然后启用:
```
sysctl -p
4. 查看 `ulimit -a`,注意其中的`-n`那一行
设置:
```
ulimit -n 819200
echo 819200 > /proc/sys/fs/file-max
查看:
cat /proc/sys/fs/file-max