如何在Linux中修改打开文件描述符的数量
Synopsis: 在Linux中,如果您拥有对系统的root访问权限,那么可以更改可以打开文件描述符的最大数量。Linux系统资源限制又分为整个系统层面的总限制,此时要修改内核参数,比如/proc/sys/fs/file-max。还可以对进程和用户分别做资源限制,将ulimit命令写入应用程序的启动脚本中,此时要注意子进程允许打开的最大文件数不能超过父进程的阈值限制。还可以在当前shell会话中直接执行ulimit命令,此时限制的是当前 shell 进程以及其派生的子进程
1. 全局级的文件描述符限制
查看当前的Linux系统上可打开的文件描述符的最大数量:
此数值表示每个登录会话中用户可以打开的文件数量,结果可能会因各系统而异。
如果Linux系统用作Apache/MySQL之类的服务器,可能需要打开更多的文件描述符,可以使用sysctl
命令增大内核参数fs.file-max
的数值:
上述设置只在当前会话有效,如果需要新建会话或重启系统也生效,那么要修改/etc/sysctl.conf
配置文件,在末尾添加fs.file-max=500000
,然后你想立即看到效果的话,请运行sysctl -p
命令
2. 用户级的文件描述符限制
除了可以通过修改内核参数,来设置Linux系统全局的文件描述符限制外,还可以精细化到每个用户或用户组。
2.1 内置命令ulimit
使用ulimit
内置命令可以设置shell的资源限制,包括最大可打开的文件数:
1. 查看当前用户所有的资源限制信息 # ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31204 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues
0 条评论
评论者的用户名
评论时间暂时还没有评论.