debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

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

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

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1742
  • Debian GNU/Linux Stretch
    • Алтайская Группа Пользователей Linux
  • Jabber: ihammers@jabber.ru
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

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1742
  • Debian GNU/Linux Stretch
    • Алтайская Группа Пользователей Linux
  • Jabber: ihammers@jabber.ru
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, с тех пор как я на неё обновился, ни одной подобной ошибки в логах больше не наблюдаю. Надеюсь, что проблема решена
 

Русскоязычное сообщество Debian GNU/Linux

Re: Apache2: [error] child died with signal 11
« Ответ #5 : 10 Март 2013, 01:12:22 »


Теги:
 

РЕШЕНО Не могу установить apache2

Автор prohor

Ответов: 4
Просмотров: 2964
Последний ответ 21 Декабрь 2011, 01:16:20
от prohor
Как открыть доступ к сайту из интернета в Linux debian 7(apache2+php+mysql)?HELP

Автор moskov199

Ответов: 4
Просмотров: 3477
Последний ответ 16 Август 2013, 16:04:17
от gardarea51
Создание SymLink на Apache2

Автор SovRed_Bit

Ответов: 0
Просмотров: 797
Последний ответ 11 Декабрь 2016, 01:24:46
от SovRed_Bit
Apache2, git и gitweb - не могу состыковать ...

Автор Slacky

Ответов: 2
Просмотров: 559
Последний ответ 28 Май 2018, 23:27:07
от Slacky
PHP 5.2 (через fastcgi) и PHP 5.3 (как модуль Apache2) на одном сервере

Автор v5DESIGN

Ответов: 1
Просмотров: 1265
Последний ответ 02 Ноябрь 2012, 21:01:30
от ihammers