Табло заполнено, а не в MaxRequestWorkers

Я использую Apache и Tomcat с mod-jk в своем проекте. Мое веб-приложение находится в экземплярах Tomcat. Я использую Apache jmeter для тестирования нагрузки http на tomcat. Но я получаю сообщение об ошибке 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

Я настроил http-mpm примерно на 5000 потоков.

Файл httd-mpm.conf:

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

Может ли кто-нибудь помочь мне, что может быть проблемой в этой конфигурации?


person user3393080    schedule 22.03.2014    source источник


Ответы (4)


Кажется, что Apache пытается изящно завершить некоторые процессы и зависает при этом. Это может быть проблема Apache (https://bz.apache.org/bugzilla/show_bug.cgi?id=53555) или проблема самого приложения.

Вы можете легко проверить это, посмотрев на страницу состояния сервера apache. Для этого вам нужно включить модуль apache status.conf. Затем перейдите на your-server.org/server-status. Вы увидите все процессы и потоки, которые в настоящее время используются или корректно завершаются (G-состояние). Если у вас есть много G, которые не исчезают, вы нашли свою проблему. Это будет выглядеть так:

Слишком много потоков изящно завершаются...

Решение довольно простое. Просто установите для параметра MaxConnectionsPerChild значение 0 или закомментируйте его (mpm_event.conf). Это просто позволит процессу продолжить свою работу, не перезапуская его. В нашем случае это хорошо, так как перезапуск процесса привел к проблеме заполнения таблицы результатов большим количеством G и, в конечном итоге, к сбою Apache.

Надеюсь, это помогло.

person Tomasz Kolonko    schedule 18.09.2017
comment
Это спасло жизнь — проблема полностью устранена в Apache 2.4.10, который поставляется с Debian (Jessie) 8.9. Спасибо большое! - person W3Coder; 07.11.2017

У меня была такая же проблема. Я пробовал разные версии Apache и MPM.

Я, кажется, получаю это много с MPM Worker. Также ошибка не повторяется при использовании Apache 2.2.2.

Вы используете cPanel? Если так, попробуйте /upcp --force и увеличьте StartServers до более высокого значения, например 50, так как это все, что я сделал, чтобы избавиться от этой ошибки.

person HostKing    schedule 29.07.2014

В этом разделе вопросов и ответов о сбое сервера предлагается что событие mpm может иметь ошибку. Рекомендуемые настройки для хотя бы частичного обходного пути:

StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off
person moodboom    schedule 24.08.2015

Попробуйте отключить EnableMMAP в 00_default_settings.conf.

person user5821538    schedule 21.01.2016