Назад | Перейти на главную страницу

сбой apache

Пожалуйста, помогите с некоторыми идеями об этом сбое сервера Apache:

Вот моя конфигурация MPM и ошибки

<IfModule prefork.c>
StartServers       5
MinSpareServers    30
MaxSpareServers   40
ServerLimit      950
MaxClients       950
MaxRequestsPerChild  2000
</IfModule>

[Sun Sep 09 03:08:03 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.16 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations
[Mon Sep 10 17:26:47 2012] [error] [mod_pagespeed 0.10.22.4-1633 @5088] [0910/172647:ERROR:worker.cc(120)] Unable to start worker thread
[Mon Sep 10 17:26:48 2012] [error] [mod_pagespeed 0.10.22.4-1633 @4983] [0910/172648:ERROR:worker.cc(120)] Unable to start worker thread
[Mon Sep 10 17:26:48 2012] [error] [mod_pagespeed 0.10.22.4-1633 @4915] [0910/172648:ERROR:worker.cc(120)] Unable to start worker thread
[Mon Sep 10 17:26:49 2012] [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48
[Mon Sep 10 17:26:49 2012] [error] [mod_pagespeed 0.10.22.4-1633 @5095] [0910/172649:ERROR:worker.cc(120)] Unable to start worker thread
[Mon Sep 10 17:26:49 2012] [error] [mod_pagespeed 0.10.22.4-1633 @5085] [0910/172649:ERROR:worker.cc(120)] Unable to start worker thread
[Mon Sep 10 17:26:49 2012] [error] [mod_pagespeed 0.10.22.4-1633 @4989] [0910/172649:ERROR:worker.cc(120)] Unable to start worker thread
[Mon Sep 10 17:26:50 2012] [alert] Child 5108 returned a Fatal error... Apache is exiting!
[Mon Sep 10 17:26:50 2012] [emerg] (22)Invalid argument: couldn't grab the accept mutex
[Mon Sep 10 17:26:50 2012] [emerg] (22)Invalid argument: couldn't release the accept mutex
[Mon Sep 10 17:26:50 2012] [emerg] (22)Invalid argument: couldn't release the accept mutex
[Mon Sep 10 17:26:50 2012] [emerg] (22)Invalid argument: couldn't grab the accept mutex
[Mon Sep 10 17:26:50 2012] [emerg] (22)Invalid argument: couldn't grab the accept mutex
[Mon Sep 10 17:26:50 2012] [emerg] (22)Invalid argument: couldn't release the accept mutex

Наиболее актуальная ошибка выглядит так:

[Mon Sep 10 17:26:49 2012] [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48

Дела просто идут под откос.

Это означает, что Apache достиг предела максимального количества процессов, разрешенных для запуска.

Вы можете просмотреть лимит, запустив ulimit -u. Чтобы увеличить лимит, запустите ulimit -u <number> или редактировать /etc/security/limits.conf (возможно, специально для Red Hat) и добавьте директиву конфигурации для пользователя Apache, чтобы увеличить значение для nproc к чему-то более разумному.

Вы также можете попробовать уменьшить Apache ServerLimit и MaxClients директивы.

Вот хорошая статья, объясняющая, как RHEL6 ввел проблему с максимальным количеством процессов («help ulimit» показывает -u - «максимальное количество пользовательских процессов»), добавив ограничение в 1024 в /etc/security/limits.d/90-nproc.conf , который, по словам автора, он только что прокомментировал: http://kavassalis.com/2011/03/linux-and-the-maximum-number-of-processes-threads/

Вот страница Red Hat Bugzilla, на которой это обсуждается: https://bugzilla.redhat.com/show_bug.cgi?id=432903