Linux对应用程序能打开的的最大文件描述符数量有两个层次的限制:用户级限制和系统级限制。
- 用户级限制是指目标用户运行的所有进程总共能打开的文件描述符数。
- 系统级的限制是指所有用户总共能打开的文件描述符数。
下面这个命令是最常用的的查看用户级文件描述符限制的方法:
#ulimit -n
#ulimit -SHn max-file-number
不过这种设置是临时的,只有当前的session中有效。为永久修改用户级文件描述符数限制,可以在/etc/security/limits.conf 文件中加入如下两项:
hard nofile max-file-number soft nofile max-file-number
第一行是指硬限制,第二行是指软限制
如果要修改系统级文件描述符数限制,则可以使用如下命令:
sysctl -w fs.file-max=max-file-number
不过该命令也是临时更改系统限制。要永久更改系统级文件描述符数限制,则需要在/etc/sysctl.conf 文件中添加如下一行:
fs.file-max=max-file-number
然后通过执行sysctl -p 命令使更改生效。