LINUX学习:Too many open files 问题解决方法
《LINUX学习:Too many open files 问题解决方法》要点: 1.解决办法(1)查看查看当前系统打开的文件数量
查看某一进程的打开文件数量
该问题最大的可能是打开的文件或是socket没有正常关闭.为了定位问题是否由Java进程引起,通过Java进程号查看当前进程占用文件描述符情况:
? 排序查看当前进程打开了多少句柄数
(2)系统级系统级设置对所有用户有效.可通过以下方式查看系统最大文件限制
(3)用户级Linux限制每个登录用户的可连接文件数.可通过ulimit -n来查看当前有效设置.如果想修改这个值就使用 ulimit -n <setting number> 命令. 2.文件句柄是用来干嘛的?句柄是表示你的进程与外界的i/o连接,文件句柄是一个十六位长度的二进制代码(Windows95后为32位无符号整数),代表一个已被打开文件的通道号,借助于这个句柄,你的应用程序即可使用这个相应的句柄对文件进行随意存取操作,说白了文件句柄其实是一串代表着特殊含义的号码; 当然其实系统是用句柄与一些资源联系起来的,当由系统管理,动态分配给你应用程序的某些资源的代号,你就可以使用句柄访问相应的资源了,尤其在Windows系统中,有很多东东都使用句柄,如窗口,socket. 简单看来程序通过句柄获得资源的引用,来进行资源的打开和关闭的操作. 3.为什么会出现文件句柄耗尽的情况?主要是因为linux在文件句柄的数目上有两个级别的限制.一个是系统级别的总数限制,一个是针对用户的限制.默认情况下每个用户所能使用的句柄数是1024.一般情况下1024也够用了,但是在大容量的系统上,特别是会频繁使用网络通信和文件IO的系统上,1024很快就被耗光了.所以首先我们要调整这个值. ? 学习更多LINUX教程,请查看站内专栏,如果有LINUX疑问,可以加QQ交流《LINUX学习:Too many open files 问题解决方法》。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |