"too many open files" 错误与解决方法
问题现象:这是一个基于 java 的 web 应用系统,在后台添加数据时提示无法添加,于是登陆服务器查看 tomcat 日志,发现如下异常信息:java.io.IOException: Too many open files
通过这个报错信息,基本判断是系统可以用的文件描述符不够了,由于 tomcat 服务室系统 www 用户启动的,于是以 www 用户登陆系统,通过 ulimit –n 命令查看系统可以打开最大文件描述符的数量,输出如下:
$ ulimit -n
65535
可以看到这台服务器设置的最大可以打开的文件描述符已经是 65535 了,这么大的值应该够用了,但是为什么提示这样的错误呢?
解决思路,这个案例涉及 ulimit 命令的使用。
在使用 ulimit 时,有以下几种使用方法:
1、 在用户环境变量中加入
如果用户使用的是 bash,那么可以在用户目录的环境变量文件.bashrc 或者.bash_profile 中加入 “ulimit –u128” 来限制用户最多可以使用 128 个进程