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

《解决Linux中Too many open files问题》

1、相关命令:
ulimit –a //查看当前设置
ulimit –n 2048 //即设成2048,按实际需要设置

2、用户环境参数文件配置:
在/etc/profile中加入如下内容:

if?[?$SHELL?=?"/bin/ksh"?];?then?
ulimit?-p?16384?ulimit?-n?65536?
else?
ulimit?-u?16384?-n?65536?
fi

?

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

* - nofile 30000

?

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

?

* hard nofile 65535
* soft nofile 65535

?

?要使?limits.conf?文件配置生效,必须要确保?pam_limits.so?文件被加入到启动文件中。查看?/etc/pam.d/login?文件中有:
session?required?/lib/security/pam_limits.so

?

?

linux limits.conf 配置

  limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。

  limits.conf的格式如下:

  username|@groupname type resource limit

  username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

  type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。

  resource:

  core - 限制内核文件的大小

  date - 最大数据大小

  fsize - 最大文件大小

  memlock - 最大锁定内存地址空间

  nofile - 打开文件的最大数目

  rss - 最大持久设置大小

  stack - 最大栈大小

  cpu - 以分钟为单位的最多 CPU 时间

  noproc - 进程的最大数目

  as - 地址空间限制

  maxlogins - 此用户允许登录的最大数目

?