我在Heroku上运行一个小型的Rails应用程序,有一个动态进程和几个Puma工作进程。
Puma文档中说:
一般规则是当您的工作进程经常死亡且需要快速启动时使用preload_app。如果您没有很多工作进程,您可能不应该使用preload_app。
这表明我不应该在我的config/puma.rb中使用
Heroku对于“一个简单的Rails应用程序”的推荐配置包括
一般规则是当您的工作进程经常死亡且需要快速启动时使用preload_app。如果您没有很多工作进程,您可能不应该使用preload_app。
这表明我不应该在我的config/puma.rb中使用
preload_app!
。然而,我还有一些未解答的问题:
- 我的工作进程何时死亡?它们将在一定数量的请求后被收回并重新fork吗?我如何监控这个过程?
- 我怎么知道我的工作进程需要快速启动?
preload_app!
在使用许多工作进程时应该节省资源,但即使只有少量工作进程,我也看不出使用它的缺点。Heroku对于“一个简单的Rails应用程序”的推荐配置包括
preload_app!
,但他们没有提供任何关于何时不使用它的指导。(忽略分阶段重启问题),那么什么时候不应该使用preload_app!
,为什么?