【发布时间】:2018-07-04 01:50:46
【问题描述】:
我正在尝试在 Heroku 上的 Rails 应用程序中查找内存膨胀问题。
我已经阅读了大量关于内存膨胀的文章,并尝试使用Scout 来诊断问题。
我正在关注Christoffers question 关于 Heroku 内存上升的信息,但我有一个不同的问题。我的几乎总是在部署之后,然后内存使用量上升,我的应用程序中断。
如您所见,部署完成,然后在第一次访问应用程序中断之后。
我已经对我能做的事情进行了基准测试(检查了我的查询),但在开发过程中并没有出现任何缓慢的迹象。此外,它似乎不是一个控制器,它只是 在部署后使用的第一个控制器 坏了。我试了几个,第一次加载的时候都坏了。
Scout Dashboard - Memory Allocation Breakdown 将其显示为 CategoriesController 的超时请求示例:
partial 和 layout 正在渲染,因为它应该在图像下
系统
我正在运行 Rails 5.1.4,为 Angular 2 安装和配置了 Webpacker。 这意味着我已经在我的根目录中添加了一个 Procfile:
web: bundle exec puma -p $PORT 这是Heroku documentation推荐的
应用正在按应有的方式部署,但出现关于 ... has incorrect peer dependency ... 的小错误
健康和生病日志
我试图找到一个健康的 Heroku 日志和一个生病的 Heroku 日志。
如果对此感兴趣,请提出要求。
工人人数
我已阅读文章 Ruby Memory Use 并尝试将我的 config/puma.rb 中的工人数量减少到 1,但没有结果。
更新!
1 . Heroku 上内存使用的奇怪行为:
它在每天重新启动后大约 100 MB 后开始,但在超时(第一次访问)后,内存使用量跃升到略低于 500 MB。
- @grizzthedj 提到了公共文件夹。它是 27.1 MB,因为 PDF.js 插件很重。
我正在寻求帮助来定位此问题。这可能是什么?你有什么想法吗 - 让我试试吧!
我已经尝试了我认为可行的方法,但没有任何帮助。
任何帮助将不胜感激。
你可以在我的Github page找到该应用
【问题讨论】:
-
目前平均有多少用户登录到您的应用?您如何将您的应用程序部署到 Heroku(即什么框架)? /public 目录中的所有资产是否在初始页面加载时下载?您是否在 /public 目录中的资产上使用缓存破坏器?
-
嘿@grizzthedj - 我正在使用 Ruby on Rails 和 Webpacker。 公用文件夹 - 是的 - 我根本没有考虑过公用文件夹。 没有缓存破坏器。会是这样吗?我使用了一个很重的pdf.js 插件。
-
我已经更新了我的帖子。
标签: ruby-on-rails heroku memory-management webpack