1.问题
1804012290 [reactor-http-epoll-1] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. -
io.netty.channel.unix.Errors$NativeIoException: accept(..) failed: 打开的文件过多
2024-11-27 14:25:52.849 WARN 40110 --- [or-http-epoll-1] io.netty.channel.DefaultChannelPipeline : An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
2.查看linux默认连接数
ulimit -n
如果要查看是哪个进程打开的较多,可以使用
#使用ps -ef |grep java
#77281 表示进程id
lsof -p 77281 |wc -l
如果想查看 系统的一些限制参数,可以使用下面的
如果想查看当前系统设置的最大句柄数是多少,可以使用
ulimit -a
3.修改允许打开的文件数
3.1 修改允许打开的文件数——命令方式
这种设置方法是临时修改,在重启后会还原为默认值
3.1.1 vi /etc/profile
在文件末尾加入
#wx add 20241205
ulimit -n 65535
3.1.2 使其生效
source /etc/profile
3.2 修改允许打开的文件数——修改系统配置文件
这种设置方法会永久有效
vim /etc/security/limits.conf
#在最后加入
* soft nofile 65535
* hard nofile 65535
或
* - nofile 65535
最前的 * 表示所有用户,可根据需要设置某一用户,例如
wux soft nofile 65535
wux hard nofile 65535
注意”nofile”项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定.