计分板已满,而不是MaxRequestWorkers处 [英] Scoreboard is full,not at MaxRequestWorkers

查看:683
本文介绍了计分板已满,而不是MaxRequestWorkers处的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在项目中将Apache和Tomcat与mod-jk一起使用.我的Web应用程序在Tomcat实例中.我正在使用Apache jmeter在tomcat上测试http负载.但是我收到错误记分板已满,即使有1000个线程,也没有出现在MaxRequestWorkers .

I an using Apache and Tomcat with mod-jk in my project. My web application is in Tomcat instances. I am using Apache jmeter for testing http load on tomcat. But I'm getting the error Scoreboard is full,not at MaxRequestWorkers even with 1000 threads.

[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

我为http-mpm配置了大约5000个线程.

I've configured http-mpm for approximately 5000 threads.

httd-mpm.conf文件为:

httd-mpm.conf file is:

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

有人可以指导我此配置有什么问题吗?

Can anybody please guide me what can be the problem in this configuration?

推荐答案

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

It seems that Apache tries to gracefully finish some of the processes and hangs while doing so. It might be a problem of Apache (https://bz.apache.org/bugzilla/show_bug.cgi?id=53555) or a problem of the application itself.

您可以通过查看apache的服务器状态页面轻松地对其进行检查.为此,您需要启用status.conf apache模块.然后转到your-server.org/server-status.您将看到当前正在使用或正常完成的所有进程和线程("G"状态).如果您要处理的许多G都不会消失,那么您就发现了问题所在.看起来像这样:

You can easily check it by looking at the server-status page of apache. In order to do that you need to enable the status.conf apache module. Then go to your-server.org/server-status. You will see all the processes and threads currently being used or gracefully finishing ("G"-state). If you have to many G's that don't go away, you found your problem. It would look sth like this:

太多线程正在优雅地完成...

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

The solution is pretty simple. Just set MaxConnectionsPerChild to 0 or comment it out (mpm_event.conf). What this does is just let the process continue it's work without restarting it. That's a good thing in our case, since restarting the process let to the problem of having to many G's filling up the scoreboard and eventually crashing Apache.

希望有帮助.

这篇关于计分板已满,而不是MaxRequestWorkers处的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆