<IfModule mpm_event_module>
StartServers 2
ThreadLimit 196
MinSpareThreads 96
MaxSpareThreads 192
ThreadsPerChild 96
MaxRequestWorkers 192
MaxConnectionsPerChild 96
</IfModule>
Версия сервера: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
Сервер построен: 24 мая 2013 г., 16:48:07
Текущее время: понедельник, 17 июня 2013 г., 09:48:11 COT
Время перезапуска: понедельник, 17 июня 2013 г., 08:35:14 COT
Конфигурация родительского сервера. Поколение: 1
Генерация MPM родительского сервера: 0
Время работы сервера: 1 час 12 минут 57 секунд
Загрузка сервера: 0,05 0,10 0,09
Всего обращений: 14144 - Общий трафик: 349,7 МБ
Использование ЦП: u.28 s.25 cu0 cs0 - 0,0121% загрузка ЦП
3,23 запроса / с - 81,8 кБ / с - 25,3 кБ / запрос
1 запрос обрабатывается, 191 неработающий работникPID | Connections | Threads | Async connections | total | accepting | busy | idle | keep-alive | closing ============================================================== 18997 | 3 | yes | 1 | 95 | 0 | 3 18485 | 0 | yes | 0 | 96 | 0 | 0 ============================================================== Sum | 3 | | 1 | 191 | 0 | 3
Сообщение об ошибке
[Пн, 17 июня, 09:32: 45.680842 2013] [mpm_event: error] [pid 8574: tid 140185091581760] AH00485: табло заполнено, не в MaxRequestWorkers
Это появляется каждые несколько секунд. Я этого не понимаю. Как я могу это исправить?
У нас была такая же проблема на Apache 2.4.6. После наблюдения за сервером и настройки параметров в течение нескольких часов нам кажется, что в Apache может быть ошибка. Похоже, что серверные процессы иногда попадают в G
состояние (изящно завершено) и перезапускается для приема новых запросов, это нормально. Что ненормально, так это то, что по какой-то причине перезапуск может занять до нескольких минут. Если у вас работает всего несколько серверных процессов, и все они входят в G
состояние в то же время, ваше табло заполняется, и вы больше не сможете отправлять запросы.
Мы увеличили количество серверов, чтобы было меньше шансов, что они все войдут в G
состояние в то же время. Также убедитесь, что вы выделяете не менее 25 потоков (MaxRequestWorkers
) для каждого серверного процесса, потому что это, по-видимому, значение по умолчанию (т.е. если 5 Servers
х 25 ThreadsPerChild
= 125 MaxRequestWorkers
). Ты можешь измениться ThreadsPerChild
если хотите, мы оставили значение по умолчанию. Если вы не выделите достаточно потоков, дополнительные серверы не запустятся. Мы ушли MinSpareThreads
со значением по умолчанию, равным 25, и значением по умолчанию для MaxSpareThreads
что составляет 75. Если вы измените эти параметры, значение для MaxSpareThreads
должно быть больше или равно сумме MinSpareThreads
и ThreadsPerChild
. Также MaxRequestWorkers
должно быть равно или меньше ServerLimit
.
Вот что сработало для нас, но, возможно, это не лучшая конфигурация для вас.
StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off
Изменить: это подтверждено ошибка в модуле httpd mpm_event, который не может быть исправлен с помощью конфигурации.
Связанный баг трекер В записи есть предполагаемый патч и более подробное обсуждение того, как исправить это, пока не будет официально выпущена новая версия модуля событий.
Видя ту же проблему.
Apache 2.4.7-1ubuntu4.4 on Ubuntu 14.04
Server Version: Apache/2.4.7 (Ubuntu)
Server MPM: event
Server Built: Mar 10 2015 13:05:59
В частности, мы можем вызвать такое поведение, перезагружая apache.
Затем мы видим пару старых процессов, которые не останавливаются:
root 28192 0.0 0.8 103772 8648 ? Ss Mar16 0:03 /usr/sbin/apache2 -k start
www-data 2530 0.3 2.1 865188 21516 ? Sl 06:26 0:54 \_ /usr/sbin/apache2 -k start
www-data 2531 0.2 2.1 865436 21892 ? Sl 06:26 0:51 \_ /usr/sbin/apache2 -k start
www-data 3299 0.3 2.0 864140 20628 ? Sl 06:46 0:51 \_ /usr/sbin/apache2 -k start
www-data 7305 0.3 2.1 865100 21504 ? Sl 08:36 0:37 \_ /usr/sbin/apache2 -k start
www-data 11952 0.2 1.8 863004 19268 ? Sl 10:46 0:06 \_ /usr/sbin/apache2 -k start
www-data 13284 0.0 0.6 103772 6692 ? S 11:18 0:00 \_ /usr/sbin/apache2 -k start
www-data 13553 2.1 2.0 866156 21248 ? Sl 11:23 0:01 \_ /usr/sbin/apache2 -k start
Обратите внимание на «старые» и «новые» PID и время начала. ^^
PID Connections Threads Async connections
total accepting busy idle writing keep-alive closing
7305 14 no 0 0 0 0 0
2530 13 no 0 0 0 0 0
3299 7 no 0 0 0 0 0
13553 65 no 17 8 0 25 25
2531 15 no 0 0 0 0 0
11952 10 no 0 0 0 0 0
Sum 124 17 8 0 25 25
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGW_WWWW__W_W_W_WWWWWWW__WWGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGG
Мы начали видеть это, когда одна из наших баз данных реплик отключилась и начала отключаться. Это связывало миллионы нитей в Apache, по-видимому, до тех пор, пока что-то не было сломано, и мы не начали получать это сообщение.
Вероятно, это не обычный случай, но я отправляю это в каноник в надежде, что это поможет другим, увидевшим эту ошибку.