【发布时间】:2019-11-29 07:33:46
【问题描述】:
自从我升级到 Rails 6 并开始使用 webpacker 后,我在启动时的内存消耗(使用 heroku)一直是灾难性的。 它在大约 1200mb 处达到峰值,然后下降并稳定地挂在大约 1200mb 处。 512mb。 我尝试过 webpacker 延迟加载和块拆分,但无济于事。 这是我在部署新版本(并重新启动 dynos)后第一次获取简单页面时的日志:
2019-11-29T07:28:35+00:00 app[heroku-redis]: source=CACHE_REDIS addon=redis-polished-49634 sample#active-connections=1 sample#load-avg-1m=0.11 sample#load-avg-5m=0.11 sample#load-avg-15m=0.135 sample#read-iops=0 sample#write-iops=0 sample#memory-total=15664216kB sample#memory-free=12118360kB sample#memory-cached=942820kB sample#memory-redis=313912bytes sample#hit-rate=1 sample#evicted-keys=0
2019-11-29T07:29:14+00:00 app[heroku-postgres]: source=HEROKU_POSTGRESQL_RED addon=postgresql-metric-77832 sample#current_transaction=79756157 sample#db_size=134809762951bytes sample#tables=38 sample#active-connections=7 sample#waiting-connections=0 sample#index-cache-hit-rate=0.97867 sample#table-cache-hit-rate=0.93505 sample#load-avg-1m=0 sample#load-avg-5m=0 sample#load-avg-15m=0 sample#read-iops=0 sample#write-iops=0.083333 sample#tmp-disk-used=2376790016 sample#tmp-disk-available=70602002432 sample#memory-total=4044932kB sample#memory-free=153736kB sample#memory-cached=3543852kB sample#memory-postgres=21172kB
2019-11-29T07:29:49.838066+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/academy/lessons" host=app.makerspro.io request_id=75fae01f-ebe6-49f0-9635-ac92f64430da fwd="77.137.95.95" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https
2019-11-29T07:29:53.946177+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=app.makerspro.io request_id=b2d726c1-7742-4556-9302-b3e88f699adb fwd="77.137.95.95" dyno=web.1 connect=0ms service=11ms status=200 bytes=207 protocol=https
有什么办法可以克服它吗?或者至少不超时请求?
【问题讨论】:
-
是什么让你认为 Webpacker 是内存膨胀的原因?我猜您的 JS 资产是在生产环境中预编译的,并且会与服务器端的内存膨胀产生正交问题。
-
@rossta 好问题,在我的 rails 6 升级中唯一改变的是 webpacker 的使用,Scout 指出
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>是罪魁祸首。您还有什么建议吗? -
尽可能多地了解错误信息会很有帮助。你有任何堆栈跟踪吗?侦察员具体提供了什么信息?如果它发生在 Webpacker 助手中,你的 Webpacker 配置是什么?
-
这是我的暂存环境中的日志:[link] (rubyfiddle.com/riddles/15f4e)
-
Scout 刚刚有一个内存膨胀指针,它指向
javascript_pack_tag
标签: heroku memory memory-management webpacker ruby-on-rails-6