记分牌已满,不在 MaxRequestWorkers

Posted

技术标签:

【中文标题】记分牌已满,不在 MaxRequestWorkers【英文标题】:Scoreboard is full,not at MaxRequestWorkers 【发布时间】:2014-04-29 21:15:24 【问题描述】:

我在我的项目中使用 Apache 和 Tomcat 和 mod-jk。我的 Web 应用程序位于 Tomcat 实例中。我正在使用 Apache jmeter 来测试 tomcat 上的 http 负载。但我收到错误 Scoreboard is full,not at MaxRequestWorkers 即使有 1000 个线程。

[mpm_event:error] [pid 24313:tid 3075319488] AH00485: scoreboard is full, not at MaxRequestWorkers

[mpm_event:error] [pid 24313:tid 3075319488] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

我已经为大约 5000 个线程配置了 http-mpm。

httd-mpm.conf 文件是:

<IfModule mpm_event_module>
    ServerLimit              200
    StartServers             3
    MinSpareThreads          75
    MaxSpareThreads          250
    MaxClients               5000 
    ThreadsPerChild          25
    MaxRequestWorkers        5000
    MaxConnectionsPerChild   5000
</IfModule>

谁能指导我这个配置有什么问题?

【问题讨论】:

bz.apache.org/bugzilla/show_bug.cgi?id=53555 我同意上述错误被认为是一个可能的问题。 (bz.apache.org/bugzilla/show_bug.cgi?id=53555)。我还观察到服务器会在一段时间后自行纠正并杀死子进程(例如 [Mon Nov 16 15:09:27.456764 2015] [core:error] [pid 1793:tid 139889295517568] AH00046:子进程 8375 仍然没有退出, 发送一个 SIGKILL 【参考方案1】:

似乎 Apache 试图优雅地完成某些进程并在此过程中挂起。可能是 Apache (https://bz.apache.org/bugzilla/show_bug.cgi?id=53555) 的问题,也可能是应用程序本身的问题。

您可以通过查看 apache 的服务器状态页面轻松检查它。为此,您需要启用 status.conf apache 模块。然后转到 your-server.org/server-status。您将看到当前正在使用或正常完成的所有进程和线程(“G”状态)。如果你有很多 G 没有消失,你就发现了你的问题。它看起来像这样:

Too many threads gracefully finishing...

解决方案非常简单。只需将 MaxConnectionsPerChild 设置为 0 或将其注释掉 (mpm_event.conf)。 这样做只是让进程继续工作而无需重新启动它。在我们的案例中这是一件好事,因为重新启动进程会导致许多 G 填满记分牌并最终导致 Apache 崩溃的问题。

希望有所帮助。

【讨论】:

这是一个救命稻草 - 完全解决了 Debian (Jessie) 8.9 附带的 Apache 2.4.10 上的问题。非常感谢!【参考方案2】:

我遇到了同样的问题。我尝试了不同的 Apache 版本和 MPM。

我似乎通过 MPM Worker 得到了很多。使用 Apache 2.2.2 也不会再次发生错误

您在使用 cPanel 吗?如果所以尝试 /upcp --force 并将 StartServers 增加到更高的数量,例如 50,因为这就是我为消除此错误所做的一切。

【讨论】:

【参考方案3】:

This serverfault Q&A 表明事件 mpm 可能有错误。至少部分解决方法的推荐设置:

StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off

【讨论】:

【参考方案4】:

尝试启用 MMAP 关闭 在 00_default_settings.conf 中

【讨论】:

以上是关于记分牌已满,不在 MaxRequestWorkers的主要内容,如果未能解决你的问题,请参考以下文章

基于51单片机的电子记分牌的设计

Python记分牌

w.r.t 的“长”和“短”记分牌是啥? MIO/L1TEX?

使用 OpenCV 进行记分牌数字识别

java 在Spigot的记分牌

python tic tac toe记分牌没有更新[关闭]