2013-03-28 2 views
4

Сначала у меня был xCache, установленный на сервере, у меня был xCache на множестве моих серверов, но в этом случае через пару дней вы ничего не делаете, кроме пустой страницы с этой ошибкой в ​​журнале ошибок apache :APC и child pid XXXXX сигнал выхода Ошибка сегментации

child pid XXXXX exit signal Segmentation fault 

Насколько я знаю, это означает какое-то повреждение памяти.

Итак, я удалил xCache из php.ini и установил APC. Но сейчас все хуже. После того, как один час или меньше/больше серверов перестает отвечать на запросы. Я четко вижу на сервере статус сервера, что в W-режиме есть много соединений. И они не имеют ничего общего. Некоторые из них из Joomla (первая страница), а некоторые из vBulletin (форумов), а некоторые другие - о других пользовательских кодах. Если я позволю это больше времени, я буду иметь эту ошибку в журнале ошибок Apache:

Server reached MaxClients setting, consider raising the MaxClients setting 

Apache находится в mod_php и режиме mod_ruid2.

Вот результат сервер состояния, когда вешал:

Server uptime: 52 minutes 57 seconds 
Total accesses: 31025 - Total Traffic: 279.0 MB 
CPU Usage: u418.14 s64.28 cu0 cs0 - 15.2% CPU load 
9.77 requests/sec - 89.9 kB/second - 9.2 kB/request 
398 requests currently being processed, 27 idle workers 

WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WWWWWWWWWWWWWWWWWWWWWWWWW....................................... 
WW___WW_WW_W_WWW__WWWW_W_....................................... 
_W___W___WW_W_W_W_W______....................................... 

Вот журнал ошибок для XCache (многие из этих линий):

[Thu Mar 28 09:50:38 2013] [notice] child pid 1607 exit signal Aborted (6) 
httpd: /usr/src/xcache-2.0.0/utils.c:589: xc_sandbox_error_cb: Assertion `sandbox != ((void *)0)' failed. 
[Thu Mar 28 09:51:57 2013] [notice] child pid 1643 exit signal Aborted (6) 
httpd: /usr/src/xcache-2.0.0/utils.c:589: xc_sandbox_error_cb: Assertion `sandbox != ((void *)0)' failed. 
[Thu Mar 28 09:52:32 2013] [notice] child pid 1724 exit signal Aborted (6) 
httpd: /usr/src/xcache-2.0.0/utils.c:589: xc_sandbox_error_cb: Assertion `sandbox != ((void *)0)' failed. 
[Thu Mar 28 09:55:21 2013] [notice] child pid 1672 exit signal Aborted (6) 
httpd: /usr/src/xcache-2.0.0/utils.c:589: xc_sandbox_error_cb: Assertion `sandbox != ((void *)0)' failed. 
[Thu Mar 28 09:55:56 2013] [notice] child pid 1471 exit signal Aborted (6) 
httpd: /usr/src/xcache-2.0.0/utils.c:589: xc_sandbox_error_cb: Assertion `sandbox != ((void *)0)' failed. 
[Thu Mar 28 09:56:49 2013] [notice] child pid 1753 exit signal Aborted (6) 
[Thu Mar 28 09:58:29 2013] [notice] child pid 1810 exit signal Segmentation fault (11) 
[Thu Mar 28 09:58:29 2013] [notice] child pid 1877 exit signal Segmentation fault (11) 
httpd: /usr/src/xcache-2.0.0/utils.c:589: xc_sandbox_error_cb: Assertion `sandbox != ((void *)0)' failed. 
[Thu Mar 28 10:01:34 2013] [notice] child pid 1844 exit signal Segmentation fault (11) 
[Thu Mar 28 10:01:34 2013] [notice] child pid 1913 exit signal Aborted (6) 
[Thu Mar 28 10:01:34 2013] [notice] child pid 1941 exit signal Segmentation fault (11) 
[Thu Mar 28 10:01:36 2013] [notice] child pid 2007 exit signal Segmentation fault (11) 
[Thu Mar 28 10:01:37 2013] [notice] child pid 2035 exit signal Segmentation fault (11) 
[Thu Mar 28 10:01:37 2013] [notice] child pid 2036 exit signal Segmentation fault (11) 

журнал ошибок для APC до достижения максимального клиента (от одного рестарта на другой перезагрузки):

[Thu Mar 28 19:17:10 2013] [notice] Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips DAV/2 PHP/5.2.17 configured -- resuming normal operations 
[Thu Mar 28 19:21:40 2013] [notice] child pid 1356 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:41 2013] [notice] child pid 1520 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:42 2013] [notice] child pid 1330 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:42 2013] [notice] child pid 1518 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:46 2013] [notice] child pid 1967 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:46 2013] [notice] child pid 1968 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:49 2013] [notice] child pid 1939 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:50 2013] [notice] child pid 2034 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:51 2013] [notice] child pid 2062 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:57 2013] [notice] child pid 2091 exit signal Segmentation fault (11) 
[Thu Mar 28 19:22:58 2013] [notice] child pid 2090 exit signal Segmentation fault (11) 
[Thu Mar 28 19:25:34 2013] [notice] caught SIGTERM, shutting down 
[Thu Mar 28 19:25:37 2013] [notice] SSL FIPS mode disabled 
[Thu Mar 28 19:25:37 2013] [warn] RSA server certificate CommonName (CN) `localhost' does NOT match server name!? 
[Thu Mar 28 19:25:37 2013] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366) 
[Thu Mar 28 19:25:37 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) 
[Thu Mar 28 19:25:38 2013] [notice] SSL FIPS mode disabled 
[Thu Mar 28 19:25:38 2013] [warn] RSA server certificate CommonName (CN) `localhost' does NOT match server name!? 
[Thu Mar 28 19:25:38 2013] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366) 
[Thu Mar 28 19:25:38 2013] [notice] Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips DAV/2 PHP/5.2.17 configured -- resuming normal operations 

Литтл из PHP Info:

System Linux xxx.xxxxx.com 2.6.32-358.0.1.el6.x86_64 #1 SMP Wed Feb 27 06:06:45 UTC 2013 x86_64 
Build Date Mar 17 2013 12:55:14 
Configure Command './configure' '--with-apxs2' '--with-curl=/usr/local/lib' '--with-gd' '--with-ttf' '--with-gettext' '--with-jpeg-dir=/usr/local/lib' '--with-freetype-dir=/usr/local/lib' '--with-kerberos' '--with-openssl' '--with-mcrypt' '--with-mhash' '--with-mysql=/usr' '--with-mysqli=/usr/bin/mysql_config' '--with-pdo-mysql=/usr' '--with-pcre-regex=/usr/local' '--with-pear' '--with-png-dir=/usr/local/lib' '--with-xsl' '--with-zlib' '--with-zlib-dir=/usr/local/lib' '--with-iconv=/usr/local' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-magic-quotes' '--enable-safe-mode' '--enable-soap' '--enable-sockets' '--enable-mbstring' '--enable-zip' '--enable-wddx' 
Server API Apache 2.0 Handler 
Virtual Directory Support enabled 
Configuration File (php.ini) Path /usr/local/lib 
Loaded Configuration File /usr/local/lib/php.ini 
Scan this dir for additional .ini files  (none) 
additional .ini files parsed (none) 
PHP API  20041225 
PHP Extension 20060613 
Zend Extension 220060519 
Debug Build  no 
Thread Safety enabled 
Zend Memory Manager  enabled 
IPv6 Support enabled 
Registered PHP Streams https, ftps, compress.zlib, php, file, data, http, ftp, zip 
Registered Stream Socket Transports  tcp, udp, unix, udg, ssl, sslv3, sslv2, tls 
Registered Stream Filters zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed 

настройки APC:

enabled 
Version  3.1.13 
APC Debugging Disabled 
MMAP Support Enabled 
MMAP File Mask no value 
Locking type pthread read/write Locks 
Serialization Support php 
Revision $Revision: 327136 $ 
Build Date Mar 28 2013 12:40:18 

Php -v:

PHP 5.2.17 (cli) (built: Mar 17 2013 12:55:24) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies 

HTTPD -V:

Server version: Apache/2.2.24 (Unix) 
Server built: Mar 10 2013 09:18:00 
Server's Module Magic Number: 20051115:31 
Server loaded: APR 1.4.6, APR-Util 1.4.1 
Compiled using: APR 1.4.6, APR-Util 1.4.1 
Architecture: 64-bit 
Server MPM:  Worker 
    threaded:  yes (fixed thread count) 
    forked:  yes (variable process count) 
Server compiled with.... 
-D APACHE_MPM_DIR="server/mpm/worker" 
-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/httpd" 
-D SUEXEC_BIN="/usr/sbin/suexec" 
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status" 
-D DEFAULT_ERRORLOG="logs/error_log" 
-D AP_TYPES_CONFIG_FILE="conf/mime.types" 
-D SERVER_CONFIG_FILE="conf/httpd.conf" 

Любая идея ?! Я вознагражу 50 :)

+0

У меня нет точной идеи о том, что вызывает проблему, но есть некоторые вещи, которые я хотел бы попробовать. Перейдите к быстрой конфигурации cgi php, чтобы изолировать ее от apache (это может означать, что вам нужно перейти на php 5.3.x). Вы можете попробовать обычную конфигурацию cgi, если вы не можете обновить php. – datasage

+0

Я был на CGI месяц назад. очень плохая работа. Очень плохо. И не использовать кеши опкода! Поэтому я перешел на mod_php. Я не люблю ехать туда же, где был :), но спасибо в любом случае. –

+0

fcgi лучше, чем mod_php и cgi. Но он поддерживается только без патчей в php 5.3.3 и выше. ut вы все равно можете найти исправления для более ранних версий с php-fpm. – datasage

ответ

3

С точки зрения страницы состояния вашего сервера вы пытаетесь запустить PHP как mod_php с помощью потокового Apache MPM. Многие расширения PHP, в том числе APC и Xcache, не являются потокобезопасными. Как таковые, они будут часто падать под нагрузкой.

Вам нужно будет переключить Apache на prefork MPM или запустить PHP как CGI или FastCGI.

+0

Из интереса, какова была подсказка, которая привела вас к такому выводу? Я думал, что даже pre-fork говорил о «рабочих» ... – IMSoP

+0

Если вы правы, это выглядит как [это несовместимо с mod_ruid2] (http://docs.cpanel.net/twiki/bin/view/EasyApache3/ModRuid2) – IMSoP

+2

Ключ - это то, как рабочие отображаются на странице состояния. Работники Prefork все время просматривают страницу, но MPM с многопоточным доступом идут только частично. – duskwuff