将 Rails 5.2 升级到 6.0.0 后内存泄漏
Posted
技术标签:
【中文标题】将 Rails 5.2 升级到 6.0.0 后内存泄漏【英文标题】:Memory leak after upgrade Rails 5.2 to 6.0.0 【发布时间】:2020-01-15 14:26:21 【问题描述】:有人经历过吗?我们将一个项目从 Rails 5.2 升级到 Rails 6.0.0,在此之后,内存消耗猛增......在发布候选环境中,它工作正常,但在生产中,容器因内存使用而死亡......实例我们在 5.2 中可以使用 1GB RAM,但我们为 Rails 6.0.0 测试的实例会立即死亡,即使我们给它们 4GB ram。
我们已经测试了https://github.com/schneems/derailed_benchmarks,但是需要的 gems 总共增加了大约 10 MiB。
我们有一些繁重的查询,但我们不知道为什么会在 Rails 6 中而不是在 Rails 5 中发生这种情况。
【问题讨论】:
也发生在我们身上,不得不回滚。我们无法在本地重现此问题,我们正在尝试找出一种调试方法。 @Yosi 好的,如果你解决了这个问题,请告诉我如何。 是的,这里也一样。我们只是回滚,因为很难弄清楚这是从哪里来的。 这可能是相关的:github.com/rails/rails/issues/36963 @ujh 在我们的例子中,我们包含特定的 Rails 库,所以这不会影响我们 【参考方案1】:这在很大程度上取决于您拥有什么宝石。 此外,我会首先使用 Scout 或 NewRelic 等监控工具来了解泄漏发生的位置/方式。
【讨论】:
以上是关于将 Rails 5.2 升级到 6.0.0 后内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章
Rails 5.2 和 webpacker 3.4.3:部署到 Heroku 时资产未编译
如何在 ActiveStorage (Rails 5.2) 中更新附件
将 Bundler 升级到 2.1.4 后初始化 Rails 控制台出错