我们的 Heroku 应用昨天宕机了一段时间。日志中的错误消息:
[error] server reached MaxClients setting, consider raising the MaxClients setting
我检查了 httpd.conf 以查看 MaxClients 设置,我发现:
MaxClients 1
添加这些指令的提交在 Heroku 的 Github 上。将 MaxClients 设置为 1 是否有道理,还是只是随意的?增加它时我应该考虑什么?
答案1
Heroku测功机被设计为一个计算单元。为了比较:
像 Rails 这样的单线程、非并发框架每次可以处理一个请求。
设置MaxClients 1
只是告诉您的 PHP dyno 一次只处理一个请求。由于 dyno 实际上能够处理比这多得多的请求,因此 MaxClients 可以且应该提高到更大的数字,例如 256。
答案2
这里解释一下MaxClients的含义:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients
尝试将参数增加约 250 并重试