Linux对应用程序能打开的的最大文件描述符数量有两个层次的限制:用户级限制和系统级限制。

 

  •     用户级限制是指目标用户运行的所有进程总共能打开的文件描述符数
  •     系统级的限制是指所有用户总共能打开的文件描述符数。

 

 

下面这个命令是最常用的的查看用户级文件描述符限制的方法:

 

#ulimit -n

 

 

我们可以通过如下方式将用户级文件描述符数限制设定为max-file-number:

 

#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 命令使更改生效。