Ruby on rails 连接到多个数据库时,ActiveRecord似乎会泄漏内存

Ruby on rails 连接到多个数据库时,ActiveRecord似乎会泄漏内存,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有一个Rails应用程序,可以根据请求下载SQLite数据库,将其保存为TempFile,并使用ActiveRecord::Base连接到它。建立连接。应用程序只需将整个数据库作为JSON返回(数据库大小约为10MB)。在每个请求之后,我显式地调用ActiveRecord::Base.connection.disconnect。每次请求我的应用程序(在我的开发盒上)后,我注意到应用程序使用的内存量似乎在不断增加。我怎样才能阻止这一切的发生 仅针对一些数字: 当我启动我的应用程序时,每个工作人员

我有一个Rails应用程序,可以根据请求下载SQLite数据库,将其保存为
TempFile
,并使用
ActiveRecord::Base连接到它。建立连接。应用程序只需将整个数据库作为JSON返回(数据库大小约为10MB)。在每个请求之后,我显式地调用
ActiveRecord::Base.connection.disconnect。每次请求我的应用程序(在我的开发盒上)后,我注意到应用程序使用的内存量似乎在不断增加。我怎样才能阻止这一切的发生

仅针对一些数字:


当我启动我的应用程序时,每个工作人员都在使用大约100-200米的内存。在少于100个请求(每个请求拉取相同的DB)后,每个工人使用500米。我已经看到每台电脑的容量都增长到了7亿台,在这一点上,我不得不关闭服务器,因为我的桌面滞后太多了

如果确实是ActiveRecord缓存问题,请尝试删除它(这是中间件)

在application.rb中:

config.middleware.delete "ActiveRecord::QueryCache"

在做了一些研究之后,我偶然发现了一些相关的信息。ActiveRecord缓存查询的结果,因此ActiveRecord很可能没有泄漏信息,而是不必要地缓存数据库。不幸的是,我自己没有解决这个问题的专业知识。如何让active record在没有缓存的情况下执行查询?只是做了一些测试,我不相信SQLite3适配器使用了查询缓存,所以我在这里有点不知所措。