can not open so many files 错误处理

来源:互联网 发布:static的作用php 编辑:程序博客网 时间:2024/06/13 11:41

在运行server的时候总是会遇到这个错误,在linux下open files的数量是有限制的,一般为1024,如果运行server,总是会需要修改这个值的,查看本机limit的数量的方式:

ulimit -a  # -a 表示显示所有的数量限制,如果要查看open files的数量可以使用-n参数

ulimit -n

ulimit的参数说明:

-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes


既然找到了原因,现在就需要修改这个限制条件,用root用户权限打开文件:

sudo vim /etc/security/limits.conf

然后在后边添加两句话:

*   soft  nofile 65536

*   hard nofile 65536  # 后边的数字你自己的实际情况而定

软限制是给出warning的限制上限;硬限制时强制限制

前面的*说明对所有的登陆用户都适用,也可以通过制定登录用户名来针对用户更改


最后保存退出后,需要退出shell,重新登录,使其生效。

原创粉丝点击