加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 我应该在Heroku上使用prema_app和Puma吗?

发布时间:2020-12-17 04:37:50 所属栏目:百科 来源:网络整理
导读:我正在Heroku上运行一个小型Rails应用程序,其中有一个dyno和几个Puma工作者. Puma docs说: General rule is to use preload_app when your workers die often and need fast starts. If you don’t have many workers,you probably should not use preload_
我正在Heroku上运行一个小型Rails应用程序,其中有一个dyno和几个Puma工作者.

Puma docs说:

General rule is to use preload_app when your workers die often and
need fast starts. If you don’t have many workers,you probably should
not use preload_app.

这表明我不应该使用preload_app!在我的config / puma.rb中.但是,我有一些未解答的问题:

>我的工人何时死亡?在一定数量的请求之后,它们会被收获并重新分叉吗?我该如何监控?
>我怎么知道我的工人是否需要快速启动?

很明显preload_app!在使用许多工人时应该节省资源,但即使只有少量工人,我也看不到使用它的缺点.

Heroku的“一个简单的Rails应用程序”的recommended config包括preload_app!但他们没有就何时不使用它提供任何指导.

什么时候应该preload_app!不习惯,为什么? (忽略分阶段重启问题.)

解决方法

除了快速启动工作人员,preload_app!由于Ruby 2.0中引入了 Copy on Write功能,因此也可以节省内存.

你可以阅读这篇great write-up from Heroku,介绍Ruby中的copy-on-write的想法:

Copy on Write or COW is an optimization that can reduce the memory footprint of a Ruby process when it is copied. Instead of allocating duplicate memory when a process is forked,COW allows multiple processes to share the same memory until one of the processes needs to modify a piece of information.

因此,无论你有多少作品,总是建议启用preload_app!如果可能的话.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读