RHEL修改最大文件打开数[Too Many Open Files]
作者:sealinger 发布时间:January 9, 2011 分类:混口饭吃
网络的不稳定(丢包率达到6%的时候),导致了Java中间件每10-15分钟产生 Too Many Open Files 的错误。
RHEL下增大文件描述符的修改方法:
1. 查看当前设置
ulimit -n(默认是1024)
2. 查看系统可接受的最大打开文件数(一般默认已足够,不用修改)
# cat /proc/sys/fs/file-max(默认可能是372998,已足够)
如果小于你期望的值,可以改大:
# echo 327998 > /proc/sys/fs/file-max
或者写入 /etc/sysctl.conf 中,以便重启也能生效:
fs.file-max = 327998
3. 修改/etc/security/limits.conf文件,设置用户最大打开文件数
#<domain> <type> <item> <value>
* - nofile 2048 (添加这一行)这样即设置系统每个用户的最大打开文件数为2048。
注意 nofile 参数在 type 类型上有2个可能的选项:hard 和 soft ,这两个值都需要设置,“-”代表同时设置这2个值为后面的数字。
hard limit 只是作为 soft limit 的上限,soft limit 才是你设置的系统当前限制。当你设置 hard limit 后,你以后设置的 soft limit 的值就只能小于 hard limit 。普通用户可以降低 hard limit 的值,但是不能提高它,只有 root 用户才能提高 hard limit。
4. 退出shell登陆,重新登陆一次即生效(运行ulimit -n 检查)
5. 已经启动的进程,可能需要关闭后重新启动才生效。
说明:redhat建议逐步double增加这个数值,如先增加到2048,观察下,如不OK,再增加为4096-->8192-->16384。。。