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!不习惯,为什么? (忽略分阶段重启问题.)
解决方法
你可以阅读这篇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.jb51.cc/ruby/269586.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。