使用 puma 的 Heroku 内存问题
Heroku memory issues using puma
我检查了我的日志,自从开始使用 puma(从没有这个问题的 unicorn 切换过来)作为我在 heroku 上的网络服务器后,我遇到了似乎是内存泄漏的问题。
服务器本身是空闲的,日志显示没有请求,但我在 web dynos 上的内存利用率不断上升到极限,然后超过配额。关于如何研究这个问题有什么想法或建议吗?
我无法提供答案,但我正在研究同样的问题。到目前为止,以下两个链接对我来说最具教育意义:
https://github.com/puma/puma/issues/342. A possible work-around (though supposedly not vetted for Heroku production) is to use the puma-worker-killer gem: https://github.com/schneems/puma_worker_killer。希望这有帮助。
最后,我不得不使用具有更多 RAM 的 dyno 类型(Performance Large)来容纳 Ruby/Rails 正在执行的内存缓存。我找不到办法阻止它达到 2.5GB 左右的峰值,但在那之后它确实趋于平稳。
我 运行 参与其中,在 2019 年秋季,Heroku 向新应用程序添加了一个 Config Var,但必须手动将其添加到之前创建的应用程序中。
MALLOC_ARENA_MAX=2
他们在这里写了一篇关于它的文章:
https://devcenter.heroku.com/changelog-items/1683
您也可以尝试使用 Jemalloc https://www.speedshop.co/2017/12/04/malloc-doubles-ruby-memory.html
我检查了我的日志,自从开始使用 puma(从没有这个问题的 unicorn 切换过来)作为我在 heroku 上的网络服务器后,我遇到了似乎是内存泄漏的问题。
服务器本身是空闲的,日志显示没有请求,但我在 web dynos 上的内存利用率不断上升到极限,然后超过配额。关于如何研究这个问题有什么想法或建议吗?
我无法提供答案,但我正在研究同样的问题。到目前为止,以下两个链接对我来说最具教育意义: https://github.com/puma/puma/issues/342. A possible work-around (though supposedly not vetted for Heroku production) is to use the puma-worker-killer gem: https://github.com/schneems/puma_worker_killer。希望这有帮助。
最后,我不得不使用具有更多 RAM 的 dyno 类型(Performance Large)来容纳 Ruby/Rails 正在执行的内存缓存。我找不到办法阻止它达到 2.5GB 左右的峰值,但在那之后它确实趋于平稳。
我 运行 参与其中,在 2019 年秋季,Heroku 向新应用程序添加了一个 Config Var,但必须手动将其添加到之前创建的应用程序中。
MALLOC_ARENA_MAX=2
他们在这里写了一篇关于它的文章:
https://devcenter.heroku.com/changelog-items/1683
您也可以尝试使用 Jemalloc https://www.speedshop.co/2017/12/04/malloc-doubles-ruby-memory.html