我有一个 Rails 应用程序,它根据请求下载 SQLite 数据库,将其保存为 TempFile
并使用 ActiveRecord::Base.establish_connection
连接到它。该应用程序所做的只是将整个数据库作为 JSON 返回(数据库大小约为 10 MB)。在每次请求之后,我都会显式调用 ActiveRecord::Base.connection.disconnect!
。在对我的应用程序(在我的开发箱上)发出每次请求后,我注意到该应用程序使用的内存量似乎在不断增加。我怎样才能阻止这种情况发生?
只是一些数字:
当我启动我的应用程序时,每个工作人员使用大约 100-200 米的内存。在少于 100 个请求(每个请求拉同一个数据库)后,每个工作人员使用 500m。我已经看到每个增长到大约 700m,此时我不得不终止服务器,因为我的桌面滞后太多。
最佳答案
如果真的是ActiveRecord缓存问题,尝试去掉(是中间件)
在 application.rb 中:
config.middleware.delete "ActiveRecord::QueryCache"
关于ruby-on-rails - 连接到多个数据库时,ActiveRecord 似乎会泄漏内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049831/