日期:2014-05-16  浏览次数:20656 次

LINUX文件打开数(too many open files)问题(转)

在做linux服务器程序的时候,当流量上来,linux服务器的默认单进程的文件打开数肯定是不够的,

一般非root用户进程默认只有1024个文件打 开权限,所有对文件的操作,对网络的操作,在linux下都作为一个文件打开,所以在并发量大的时候,这个限制很快就达到了。

一旦达到这个限制,应用程序 就会报一个:too many open files的错误。

?

?

解决这个问题就需要增大这个限制.....

当前设置最大打开文件数可以通过如下命令查看。

ulimit -n
1024

?
通过以下命令修改

?

ulimit -n 10240

?

这样并发文件数就达到了10240,不过这么设置,重启机器后不能保存。见下面的方法2:

?

修改 /etc/security/limits.conf文件中设置最大打开文件数
添加如下这行。

????? * - nofile 30000
这行设置了每个用户的默认打开文件数为30000。注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。