Debian 8,Apache 2.4.10:记分牌已满,未达到 MaxRequestWorkers

Debian 8,Apache 2.4.10:记分牌已满,未达到 MaxRequestWorkers

全新安装 Debian 8。运行我的 Web 服务器几分钟/几小时后,Apache2 停止工作。我总是从 Apache2 error.log 收到错误“Scoreboard 已满,未达到 MaxRequestWorkers”。

此解决方法但是对我来说是可行的 - 我不想将 MPM 模式更改为 prefork。那么还有其他解决方案吗?比如升级 Apache2 版本?我对 Linux/Debian 还比较陌生,所以我不确定到底该怎么做。

答案1

这是 apache 中 mpm-event 和 mpm-worker 的一个错误,您可能仍会遇到:

https://bz.apache.org/bugzilla/show_bug.cgi?id=53555

该错误是在服务器进程数量的增加和减少过程中产生的。

我认为,真正的“修复”已在较新的版本中实现,但您可以按照 Bugzilla 报告中 Comment12 中 ScottE 的建议轻松解决此问题。他在其中表示:“...如果我们将 MinSpareThreads 和 MaxSpareThreads 设置为等于 MaxRequestWorkers(这样 Apache 就不会尝试缩减进程),问题消失了(正如预期的那样,但验证(可能?)这与 Apache 缩小规模有关)...”

(我添加了重点)

到目前为止,我通过设置 MaxSpareThreads = MaxRequestWorkers 成功解决了这个问题。并且通过理解工作者、线程、服务器等之间的关系。后者非常重要。事件 MPM 所需的基本指令很简单。扩展服务的方法是将上述两个值设置为您想要支持的客户端连接数。其他一切都会正常工作。参见:http://httpd.apache.org/docs/2.2/mod/worker.html

恕我直言:如果您的目标是让 Apache 根据需要扩展“服务器”进程的数量,那么也许您不应该使用事件或工作模型。计算您要允许的客户端连接数,然后将它们配置为始终可用。否则,请更新您的 Apache,或按上述方法配置解决方法并使用它。

祝你好运!

相关内容