记分牌已满,不在 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的主要内容,如果未能解决你的问题,请参考以下文章