too many files open 这个错误通常是由于进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数所引起的。
可以通过命令 ulimit -a
查看系统当前设置的最大句柄数是多少。
查看某个进程目前打开的句柄数量,可以通过 lsof -p 进程ID| wc -l
命令查询。
Debian 系统默认限制文件句柄的数量为1024,对于一般的应用来说 1024 句柄数量足够使用,但是对于 squid、mysql、java 等单进程处理大量请求的应用来说就有点捉襟见肘了。
我们可以修改系统配置,增大文件句柄数量的限制避免出现该问题。
操作步骤
1.修改句柄数量的限制(临时修改)
ulimit -SHn 65535
2.修改系统的配置文件(永久修改)
nano /etc/security/limits.conf
在文件底部添加以下内容:
# 设置文件句柄数量的限制
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
3.完成后保存修改并重启服务器
reboot