版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Function_Dou/article/details/89893888
不过在看下节之前, 首先知道在本机下打开的文件描述符个数的个数不能超过 1024, 除去3个输入输出还有epoll的文件描述符, 所以程序传入的最大打开文件描述符的参数不能超过 1020. 如果超过服务端报错结果如下 :
临时最大进程最大打开文件描述符
通过查看一个进程的最多打开个数,
ulimit -n
设置临时设置打开个数 :
limit -n10001
在普通用户下最多能够临时打开 10001, 超过则会报错. 想要将值设置更大只能
永久性更改
用户级修改
用户级永久变更需要修改 /etc/security/limits.conf
文件, 向文件中加入以下设置, 之后重启便能生效.
hard nofile 102400
soft nofile 102400
但是上面设置的值不能够超过 /proc/sys/fs/nr_open
文件中规定的值 :
$ cat /proc/sys/fs/nr_open
1048576
系统级修改
直接修改内核参数,无须重启系统。
sysctl -w fs.file-max 65536
或者
$ echo 65536 > /proc/sys/fs/file-max