java.net.SocketException: Too many open files Jedis导致服务器打开文件数过多

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tongwensenyouxiang/article/details/87917634

 上图所示:来至服务器的错误信息,Too many open files 直译过来就是打开的文件太多,也就是说这个错误主要是服务器打开的文件太多,再详细看下错误日志中提供的其他信息关键词 其中我们一眼就能看到有:

JedisConnectionException: Could not get a resource from the pool] with root cause、

Socket、

BinaryJedis、

JedisPool、

JedisConnectionFactory

由此就可以判断主要错误造成原因来至jedis

整理下我们的语言:jedis导致文件打开文件太多

服务器信息:ulimit -a

我服务器打开文件数:65535

由于不知道怎么查看最多文件数的那个进程,只好查下项目的所有进程了

查看java进程:ps aux|grep java

进程id打开文件数:lsof -p 32446

服务器中该进程打开文件数。。。。很多 多到滚屏都展示不全

不用再想了就是这个服务了

找到这个服务中代码的jedis吧我想他用的是JedisConnectionFactory,搜索之。

就是这样这个接口的请求还挺高,有三个接口这样操作,然后代码嘛jedis的就这些,就这些,没了。。。。。

然后:划重点

直接连接redis的方式,即每次连接都创建新的连接,不关闭,就一直加啊加+++++

来至:一个已经离职的同事

线上不能用了呀,改吧。

destroy啥玩意?

我们看下最权威的文档:

https://docs.spring.io/spring-data/data-redis/docs/1.3.1.RELEASE/api/org/springframework/data/redis/connection/jedis/JedisConnectionFactory.html

英语文档看不懂?百度翻译走一走?

懂了没?就是他不关闭你怎么办呀?销他丫的。。。

注:只是有时间写东西看东西,记一次生产事故,赶个时髦弄个博客,搞了七八年的开发的老菜鸟,大家可以指导哈,但是不行喷我,喷我?,生死看淡,不服就干

猜你喜欢

转载自blog.csdn.net/tongwensenyouxiang/article/details/87917634