Page 1 of 2

Периодически падает апач

Posted: Mon Apr 04, 2016 4:02 pm
by Nanotraktor
На сервере с завидной регулярностью падает апач провоцируя ошибки 502, 503. При этом какой-то закономерности или скрипта вызывающего ошибку найти не удалось.
Собственно, вопрос - как можно эту ситуацию проверить и всё-таки найти виновника "торжества"?

Немного о сервере:
CentOS 6.7 x86
Apache/2.2.15
nginx/1.8.1
VestaCP
CMS ImageCMS
php -vShow
PHP 5.4.45 (cli) (built: Jan 12 2016 18:07:56)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with XCache v3.1.1, Copyright (c) 2005-2014, by mOo
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.1.1, Copyright (c) 2002-2016, by ionCube Ltd.
with XCache Optimizer v3.1.1, Copyright (c) 2005-2014, by mOo
with XCache Cacher v3.1.1, Copyright (c) 2005-2014, by mOo
with XCache Coverager v3.1.1, Copyright (c) 2005-2014, by mOo
В /var/log/error_log ошибки вида:

Code: Select all

[Mon Apr 04 00:50:38 2016] [notice] child pid 17774 exit signal Segmentation fault (11)
[Mon Apr 04 00:50:48 2016] [notice] child pid 17775 exit signal Segmentation fault (11)
[Mon Apr 04 00:51:07 2016] [notice] child pid 17776 exit signal Segmentation fault (11)
[Mon Apr 04 18:15:04 2016] [notice] child pid 10527 exit signal Bus error (7)
[Mon Apr 04 18:20:42 2016] [notice] child pid 6900 exit signal Bus error (7)
При этом памяти - с избытком, нагрузка низкая.
httpd.confShow
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 30
KeepAlive On
MaxKeepAliveRequests 30
KeepAliveTimeout 10

<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 30
# ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>

<IfModule worker.c>
StartServers 4
MaxClients 80
MinSpareThreads 20
MaxSpareThreads 80
ThreadsPerChild 80
MaxRequestsPerChild 50
</IfModule>

<IfModule itk.c>
StartServers 5
MinSpareServers 6
MaxSpareServers 10
# ServerLimit 256
MaxClients 15
MaxRequestsPerChild 100
</IfModule>

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

Include conf.d/*.conf

ExtendedStatus On

User apache
Group apache

ServerAdmin root@localhost
UseCanonicalName Off
DocumentRoot "/var/www/html"
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>

<Directory "/var/www/html">
Options Indexes SymLinksIfOwnerMatch
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<IfModule mod_userdir.c>
UserDir public_html
</IfModule>

DirectoryIndex index.php index.htm index.html

AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig /etc/mime.types

DefaultType text/plain

<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

HostnameLookups Off

ErrorLog logs/error_log
LogLevel debug

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogFormat "%b" bytes
CustomLog logs/access_log combined

ServerSignature On

Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<Directory "/var/www/html">
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback

AddDefaultCharset UTF-8

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType image/x-icon .ico

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/50x.html
ErrorDocument 501 /error/50x.html
ErrorDocument 502 /error/50x.html
ErrorDocument 503 /error/50x.html
ErrorDocument 506 /error/50x.html

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
EnableMMAP off
apachectl -MShow
[Mon Apr 04 18:52:37 2016] [warn] NameVirtualHost 91.222.138.64:8443 has no VirtualHosts
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_default_module (shared)
authz_host_module (shared)
authz_user_module (shared)
authz_owner_module (shared)
authz_groupfile_module (shared)
authz_default_module (shared)
include_module (shared)
log_config_module (shared)
logio_module (shared)
env_module (shared)
ext_filter_module (shared)
mime_magic_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
usertrack_module (shared)
setenvif_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
actions_module (shared)
alias_module (shared)
rewrite_module (shared)
proxy_module (shared)
cache_module (shared)
suexec_module (shared)
cgi_module (shared)
version_module (shared)
fcgid_module (shared)
extract_forwarded_module (shared)
php5_module (shared)
ruid2_module (shared)
ssl_module (shared)
Syntax OK
UPD. Прошу прощения, промахнулся разделом :(

Re: Периодически падает апач

Posted: Mon Apr 04, 2016 4:47 pm
by Mr.Erbutw
Nanotraktor wrote:На сервере с завидной регулярностью падает апач. При этом какой-то закономерности или скрипта вызывающего ошибку найти не удалось.
Своп активирован ?
Возможно скрипт или что-то другое. имеет значение оптимизировать его.
хотя думаю что у вас до 1 гб памяти. вот и так странно ведет.

Re: Периодически падает апач

Posted: Mon Apr 04, 2016 5:07 pm
by Nanotraktor
4 ГБ ОЗУ, из них занято меньше половины:
http://rghost.ru/8DRV84jqV.view
SpoilerShow
Image
Свопа занято мегабайт 50. Наличие ошибки от этого не зависит, проверял.
Средний LA - 0.2-0.8
Возможно скрипт или что-то другое. имеет значение оптимизировать его.
Какова правильная методика поиска проблемного скрипта с учетом того что не существует какого-то определенного запроса, вызывающего сегфолт?

Re: Периодически падает апач

Posted: Mon Apr 04, 2016 7:17 pm
by Mr.Erbutw
Nanotraktor wrote:4 ГБ ОЗУ, из них занято меньше половины:
http://rghost.ru/8DRV84jqV.view
Image
Свопа занято мегабайт 50. Наличие ошибки от этого не зависит, проверял.
Возможно что с впс самой , .
SpoilerShow
к примеру debian + vestacp 1 gb ram
стоит dle
так кушает Image
трафик
Image
и не отваливается не чего.

Re: Периодически падает апач

Posted: Mon Apr 04, 2016 7:35 pm
by Nanotraktor
Возможно что с впс самой , .
А причем тут ВПСка? Потребление ресурсов абсолютно нормальное, свободной памяти и остального - в достатке.
То есть тут явно причина либо в кривых скриптах, модулях апача или самом апаче. Ну либо в моих кривых руках, которые что-то таинственное настроили неправильно.

Вот, собственно, это и надо как-то выяснить - кто виноват и как его правильно настроить :)

Re: Периодически падает апач

Posted: Tue Apr 05, 2016 6:06 am
by skurudo
Nanotraktor wrote: То есть тут явно причина либо в кривых скриптах, модулях апача или самом апаче.
Ставлю на скрипты, как обычно.
Однако могут "помогать" модули php - eAccelerator/apc..

А выяснять при виде Segmentation fault можно одним способом - дебажить.
CoreDumpDirectory указывать и смотреть на это сквозь призму gdb. Других вариантов тут нет.
Nanotraktor wrote:Ну либо в моих кривых руках, которые что-то таинственное настроили неправильно.
До такого довести индейца не просто, так что дополнительный талант нужен :)

Re: Периодически падает апач

Posted: Tue Apr 05, 2016 7:52 am
by Nanotraktor
Спасибо за совет, прописал CoreDumpDirectory, получил дамп, но при попытке его разобрать

Code: Select all

# gdb /usr/sbin/httpd /tmp/httpd-core.9225 
...
...
...
Loaded symbols for /usr/lib/php/modules/zip.so
Core was generated by `/usr/sbin/httpd'.
Program terminated with signal 7, Bus error.
#0  __memcpy_ssse3_rep () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S:1459
1459            movzbl  (%eax), %ecx
Missing separate debuginfos, use: debuginfo-install httpd-2.2.15-115.el6.1.i386
При попытке выполнить debuginfo-install httpd-2.2.15-115.el6.1.i386 получаю ошибку "Could not find debuginfo for main pkg: httpd-2.2.15-115.el6.1.i386"
debuginfo-install httpd-2.2.15-115.el6.1.i386Show
# debuginfo-install httpd-2.2.15-115.el6.1.i386
Загружены модули: auto-update-debuginfo, fastestmirror
enabling epel-debuginfo
enabling base-debuginfo
Loading mirror speeds from cached hostfile
* atomic: mirror1.34sp.com
* base: mirror.mirohost.net
* epel: ftp.colocall.net
* epel-debuginfo: ftp.colocall.net
* extras: mirror.mirohost.net
* remi-safe: mirror.h1host.ru
* updates: mirror.mirohost.net
Could not find debuginfo for main pkg: httpd-2.2.15-115.el6.1.i386
В http://debuginfo.centos.org/ и в гугле найти нужный пакет не смог.
Подскажите, как быть в такой ситуации?

Re: Периодически падает апач

Posted: Tue Apr 05, 2016 7:57 am
by skurudo
debuginfo-install - команда из yum-utils, потому пробовать вот так

Code: Select all

yum install yum-utils

Code: Select all

debuginfo-install glibc

Re: Периодически падает апач

Posted: Tue Apr 05, 2016 8:06 am
by Nanotraktor
yum-utils уже установлен, debuginfo-install glibc выполнил.
Но по прежнему
как-то такShow
[root@server~]# gdb /usr/sbin/httpd /tmp/httpd-core.9225
Missing separate debuginfos, use: debuginfo-install httpd-2.2.15-115.el6.1.i386

[root@server~]# debuginfo-install httpd-2.2.15-115.el6.1.i386
Загружены модули: auto-update-debuginfo, fastestmirror
enabling epel-debuginfo
enabling base-debuginfo
Loading mirror speeds from cached hostfile
* atomic: mirror1.34sp.com
* base: mirror.mirohost.net
* epel: ftp.colocall.net
* epel-debuginfo: ftp.colocall.net
* extras: mirror.mirohost.net
* remi-safe: mirror.h1host.ru
* updates: mirror.mirohost.net
Could not find debuginfo for main pkg: httpd-2.2.15-115.el6.1.i386
Пакет apr-debuginfo-1.3.9-5.el6_2.i686 уже установлен, и это последняя версия.
Пакет apr-util-debuginfo-1.3.9-3.el6_0.1.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет db4-debuginfo-4.7.25-20.el6_7.i686 уже установлен, и это последняя версия.
Пакет expat-debuginfo-2.0.1-11.el6_2.i686 уже установлен, и это последняя версия.
Пакет openldap-debuginfo-2.4.40-7.el6_7.i686 уже установлен, и это последняя версия.
Пакет openldap-debuginfo-2.4.40-7.el6_7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет pcre-debuginfo-7.8-7.el6.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет glibc-debuginfo-2.12-1.166.el6_7.7.i686 уже установлен, и это последняя версия.
Пакет libselinux-debuginfo-2.0.94-5.8.el6.i686 уже установлен, и это последняя версия.
Пакет zlib-debuginfo-1.2.3-29.el6.i686 уже установлен, и это последняя версия.
No debuginfo packages available to install
Как я понимаю, причина ошибки в том что нет debuginfo для httpd-2.2.15-115.el6.1.i386. Но вот где его найти - ума не приложу.

Сам пакет (судя по поиску) есть только в http://c.vestacp.com/rpms/6/apache/i386/ , но и там debuginfo для него нет. :(

Re: Периодически падает апач

Posted: Tue Apr 05, 2016 1:45 pm
by skurudo
Да, задачка.. :(
Может все-таки попробовать поотключать модули-расширения apache/php?