【发布时间】:2019-07-02 20:47:17
【问题描述】:
现在我的 puma 设置已成功运行,通过分阶段重启实现零停机部署(在 nginx 后面提供)。
它工作得很好,因为没有丢失连接并且新版本可以无缝使用。
但是:现在我们将进程计数设置为 CPU 数量 - 1,因此对于具有 32 个 CPU 的大型服务器,有 31 个 puma 进程,这些进程在分阶段重启期间会一个一个地重启。 这对我们来说确实需要很长很长的时间(大约 15 分钟,因为每个进程大约需要 30 秒才能启动(是的,很多 gem,大系统))。
我看到集群模式也可以通过设置preload_app! 用于快速部署 - 但我不明白部署期间发生了什么:
当前的请求会被丢弃吗?是否存在不接受新连接的小时间范围?我试图通过自述文件弄清楚它,但我不清楚到底发生了什么。
很高兴听到解释,谢谢!
【问题讨论】:
标签: ruby-on-rails nginx puma application-server