Max*_*ace 9 ruby-on-rails heroku preload puma
我正在Heroku上运行一个小型Rails应用程序,其中有一个dyno和几个Puma工作者.
在彪马文档说:
一般规则是当工人经常死亡并需要快速启动时使用preload_app.如果你没有很多工人,你可能不应该使用preload_app.
这表明我不应该使用preload_app!我的config/puma.rb.但是,我有一些未解答的问题:
很明显,preload_app!在使用许多工作人员时应该节省资源,但即使只有少量工人,我也看不到使用它的缺点.
Heroku 推荐的"简单Rails应用程序"配置包括preload_app!但不提供何时不使用它的指导.
什么时候preload_app!不应该使用,为什么?(忽略分阶段重启问题.)
除了快速启动工作程序之外,preload_app!还可以通过 Ruby 2.0 中引入的Copy on Write功能节省内存。
您可以阅读Heroku 的这篇精彩文章,介绍了 Ruby 中写时复制的思想:
写入时复制(COW)是一种优化,可以减少复制时 Ruby 进程的内存占用。COW 允许多个进程共享相同的内存,直到其中一个进程需要修改一条信息,而不是在进程分叉时分配重复的内存。
因此,无论您有多少作品,始终建议preload_app!尽可能启用。
| 归档时间: |
|
| 查看次数: |
2136 次 |
| 最近记录: |