Rails:RuntimeError:打开的文件太多

时间:2017-07-18 11:29:22

标签: ruby-on-rails ubuntu nginx redis sidekiq

大家好,我目前正在生产中运行sidekiq,但是在一定时间内,这么多作业都会输入错误RuntimeError: Too many open files的重试队列。正在使用外部API进入retries的那些作业。当我重新启动sidekiq capistrano时,它再次起作用。我查了一下:

  

当前打开的文件(by using command lsof | wc -l):71088

     

最多打开文件(by using command cat /proc/sys/fs/file-max):400511

所以很明显,这个错误的罪魁祸首不是由我的应用程序在生产服务器(nginx ubuntu)中命中其文件描述符引起的。然后有人说罪魁祸首来自redis连接。然后我通过使用命令来测试创建一对密钥,redis中的值:

`2.2.1 :001 > REDIS = Redis.new(:host => 'localhost', :port => 6379)`

`=> #< Redis client v3.0.2 for redis://localhost:6379/0>`

`2.2.1 :002 > REDIS.set("hello", "goodbye")`

`=> "OK"`

以下是生产中正在运行的sidekiq的屏幕截图错误:enter image description here

问题是当我通过capistrano命令(cap production deploy)重新启动我的应用程序时,没有再次出现此类错误,首先我怀疑它是由redis连接引起的,但事实并非如此。然后我怀疑我是由它的文件描述符引起的,但事实并非如此。你能帮助我找到这个错误的罪魁祸首吗?谢谢你们

0 个答案:

没有答案