Автор Тема: Apache2: [error] child died with signal 11  (Прочитано 6977 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн yura3d

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 27
Apache2: [error] child died with signal 11
« : 24 Января 2013, 15:37:14 »
Здравствуйте!
Периодически (иногда даже раз в несколько минут) падают чайлды Apache2 с такой ошибкой в логах:
[error] child died with signal 11PHP установлен как модуль Apache (apache2-mod-php5), Apache MPM: itk (apache2-mpm-itk). Стоят последние стабильные версии (из репозиториев squeeze). Соединение с Apache проксируется через nginx, с последним никаких проблем нет, однако если nginx попадает на "падающий" чайлд Apache, то возвращает посетителю ошибку 502 Bad Gateway, что не есть гуд.
Из нагугленного выяснил, что проблема может заключаться в установленных модулях PHP5. У меня из дополнительных модулей установлены лишь memcache (ставился из репозиториев) и ioncube-loader (скачивался с сайта ioncube).
Можно ли как-то посмотреть, из-за чего всё-таки валится Apache? Быть может, проблема в каких-то настройках? Версию ОС, ядра, Apache, PHP и списка его модулей привожу ниже:
root@server:~# uname -a
Linux server 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux
root@server:~# apache2ctl -V
Server version: Apache/2.2.16 (Debian)
Server built:   Nov 30 2012 08:58:38
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.4.2, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     ITK
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/experimental/itk"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"
root@server:~# php5 -v
PHP 5.3.3-7+squeeze14 with Suhosin-Patch (cli) (built: Aug  6 2012 14:18:06)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd.
    with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
root@server:~# php5 -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
ionCube Loader
json
libxml
mbstring
mcrypt
memcache
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
suhosin
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]
the ionCube PHP Loader
 

Оффлайн ihammers

Re: Apache2: [error] child died with signal 11
« Ответ #1 : 24 Января 2013, 18:43:18 »
Могу посоветовать посмотреть следующие параметры, возможно их стоит изменить (apache2.conf):
Timeout 300
...
KeepAlive On
...
KeepAliveTimeout 5
...
MaxRequestsPerChild   250

А также посмотрите настройки /etc/php5/*/php.ini.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 

Оффлайн yura3d

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 27
Re: Apache2: [error] child died with signal 11
« Ответ #2 : 24 Января 2013, 20:39:00 »
Могу посоветовать посмотреть следующие параметры, возможно их стоит изменить (apache2.conf):
У меня в apache2.conf были установлены следующие параметры:
Timeout 300
...
KeepAlive On
...
KeepAliveTimeout 15
...
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
Странно, что в этом файле нет секции для mpm_itk_module, ведь у меня установлен именно apache2-mpm-itk. Где-то читал, что itk основан на prefork, и поэтому использует его секцию. Но всякий случай секцию mpm_itk_module всё же добавил:
<IfModule mpm_itk_module>
    StartServers           5
    MinSpareServers        5
    MaxSpareServers       10
    MaxClients           150
    MaxRequestsPerChild 1000
</IfModule>
попутно ограничив MaxRequestsPerChild до 1000 в обоих секциях, чтобы пресечь возможные проблемы с утечкой памяти, связанную с возможным выполнением одним чайлдом Апача неограниченного числа запросов. Буду наблюдать дальнейшую работу, спасибо за наводку.

P.S. Файлы php.ini также просмотрел, но ничего сверхестественного там не нашёл: все настройки дефолтные, как только что из репозитория, от себя я там только прописывал путь sendmail_path к exim4 для возможности отправки почты из функции PHP mail(), а также прописывал путь к модулю ioncube (с этими моментами проблем нет). Быть может стоит отдельно обратить внимание на какие-то директивы, которые могут приводить к подобному эффекту (сабж) ?
« Последнее редактирование: 24 Января 2013, 20:43:29 от yura3d »
 

Оффлайн ihammers

Re: Apache2: [error] child died with signal 11
« Ответ #3 : 25 Января 2013, 18:10:36 »
...
P.S. Файлы php.ini также просмотрел, но ничего сверхестественного там не нашёл: все настройки дефолтные, как только что из репозитория, от себя я там только прописывал путь sendmail_path к exim4 для возможности отправки почты из функции PHP mail(), а также прописывал путь к модулю ioncube (с этими моментами проблем нет). Быть может стоит отдельно обратить внимание на какие-то директивы, которые могут приводить к подобному эффекту (сабж) ?
Я не использовал apache2-mpm-itk, поэтому ничего посоветовать по нему не могу, а в php.ini посмотрите например время исполнения скрипта, объём памяти, а возможно уже ничего не требуется изменять.  Что теперь логи говорят?
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 

Оффлайн yura3d

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 27
Re: Apache2: [error] child died with signal 11
« Ответ #4 : 26 Января 2013, 01:33:17 »
Я не использовал apache2-mpm-itk, поэтому ничего посоветовать по нему не могу, а в php.ini посмотрите например время исполнения скрипта, объём памяти, а возможно уже ничего не требуется изменять.  Что теперь логи говорят?
Всё-таки бывают периоды, когда подобные ошибки всё равно сыпятся в логи. Например, сегодня первую половину дня вообще ни одной ошибки не было и я уже думал, что проблема решена. Ан нет:
[Fri Jan 25 19:47:41 2013] [error] child died with signal 11
[Fri Jan 25 19:47:43 2013] [error] child died with signal 11
[Fri Jan 25 19:48:03 2013] [error] child died with signal 11
[Fri Jan 25 19:48:23 2013] [error] child died with signal 11
[Fri Jan 25 20:02:54 2013] [error] child died with signal 11
[Fri Jan 25 20:10:55 2013] [error] child died with signal 11
[Fri Jan 25 20:11:44 2013] [error] child died with signal 11
[Fri Jan 25 20:18:24 2013] [error] child died with signal 11
[Fri Jan 25 20:20:14 2013] [error] child died with signal 11
[Fri Jan 25 20:20:25 2013] [error] child died with signal 11
[Fri Jan 25 20:20:27 2013] [error] child died with signal 11
и что самое интересное, что до 19:47 (первая запись) и после 20:20 (т.е. вот уже почти 3 часа!) ни одной ошибки не было.
Настройки в php.ini самые что ни на есть стандартные:
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
Проблема в том, что у меня нет таких ресурсоёмких скриптов, которым бы не хватало отведённых выше ресурсов. Ошибка 502 Bad Gateway, генерируемая nginx в связи с падением чайлда Apache, может появится на простейшем скрипте. Да и обычно интерпретатор PHP всегда сообщает (и соответственно логирует) о нехватке выделенной памяти и т.п. В данном случае ничего такого не наблюдается.
Я почему-то всё же склонюясь к утечке памяти в каком-то из модулей PHP. Можно ли как-то произвести отладку Apache чтобы выяснить, на чём он всё-таки валится?
 

Оффлайн yura3d

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 27
Re: Apache2: [error] child died with signal 11
« Ответ #5 : 10 Марта 2013, 01:12:22 »
Наверное, сам же себе и отвечу. :) Несколько дней назад в stable репозитории squeeze обновилась версия apache2-mpm-itk, с тех пор как я на неё обновился, ни одной подобной ошибки в логах больше не наблюдаю. Надеюсь, что проблема решена
 

Теги:
 

Конфигурация Apache2

Автор ioann.sys

Ответов: 2
Просмотров: 1466
Последний ответ 02 Сентября 2014, 15:19:44
от Malaheenee
Apache2 конфигурация

Автор MCLaren

Ответов: 4
Просмотров: 1147
Последний ответ 04 Февраля 2017, 18:16:24
от MCLaren
ДоНастройка apache2

Автор antizilis

Ответов: 3
Просмотров: 675
Последний ответ 28 Июня 2019, 10:02:12
от endru
Неуживаемость iredmail и apache2

Автор dsdsda

Ответов: 1
Просмотров: 210
Последний ответ 07 Сентября 2020, 05:08:41
от endru
РЕШЕНО Не могу установить apache2

Автор prohor

Ответов: 4
Просмотров: 4109
Последний ответ 21 Декабря 2011, 01:16:20
от prohor