今天生产遇到了too many open files问题.
发生此问题的原因是打开的文件(流)过多,并且没有关闭.
因此遇到这种情况,可以先通过ulimit -a来查询linux系统中设置的上线是多少.
如果上线太低,就通过ulimit -n 2048来设置上限.
但此方法重启会重置设置,因此需要在配置文件中添加.
vim /etc/security/limits.conf
#在最后加入
* soft nofile 4096
* hard nofile 4096
* - nofile 8192
最前的 * 表示所有用户,可根据需要设置某一用户,例如
roy soft nofile 8192
roy hard nofile 8192
参考地址:https://blog.csdn.net/roy_70/article/details/78423880
不过以上方法并没有解决掉生产上碰到的问题,并且open files本身设置就是65545这么大.
如果想具体查哪个进程调用了多少,请使用lsof命令(如果系统报错说没找到则使用yum安装).