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

时间:2014-06-05 00:36:41

标签: ruby-on-rails ruby activerecord

我有一个Rails应用程序,可以根据请求下载SQLite数据库,保存为TempFile并使用ActiveRecord::Base.establish_connection连接到它。所有应用程序都将整个数据库作为JSON返回(数据库大小约为10 MB)。在每次请求之后,我明确地呼叫ActiveRecord::Base.connection.disconnect!。每次请求到我的应用程序后(在我的开发框上)我都注意到应用程序使用的内存量似乎在不断增加。我怎么能阻止这种幸福呢?

仅限某些数字:

当我启动我的应用程序时,每个工作人员使用大约100-200米的内存。在少于100个请求(每个请求拉出相同的DB)之后,每个工作者使用500米。我已经看到每个增长到大约700米,此时我必须杀死服务器,因为我的桌面滞后太多。

1 个答案:

答案 0 :(得分:1)

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

在application.rb中:

config.middleware.delete "ActiveRecord::QueryCache"