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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 我应该在Heroku上使用prema_app和Puma吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在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!如果可能的话.

原文链接:https://www.f2er.com/ruby/269586.html

猜你在找的Ruby相关文章