Падение виртуального сервера (KVM)

12
P
На сайте с 08.03.2007
Offline
250
#11
Евгений Русаченко:
Да, я смотрел данную тему. Приведенные программки ничего не выводят:

Возможно, надо скрипт чуть поправить для учёта особенностей Вашего ядра. Может быть, в /proc не совсем в том же формате данные, попробуйте посмотреть источник скрипта http://northernmost.org/blog/find-out-what-is-using-your-swap/ - там такие вопросы возникают. Скрипт читает proc и выводит по каждому процессу занятость в свопе. А вообще Андрейка намекает правильно - надо специалиста искать, если не получается самому.

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#12
Andreyka:
Если ничего не помогает - обратитесь к специалисту

Нынче такие специалисты пошли, что кроме как поднять LAMP ничего не умеют. Если можете посоветовать кого-то конкретного, то буду рад.

---------- Добавлено 25.04.2013 в 13:33 ----------

Pilat:
Возможно, надо скрипт чуть поправить для учёта особенностей Вашего ядра. Может быть, в /proc не совсем в том же формате данные, попробуйте посмотреть источник скрипта http://northernmost.org/blog/find-out-what-is-using-your-swap/ - там такие вопросы возникают. Скрипт читает proc и выводит по каждому процессу занятость в свопе. А вообще Андрейка намекает правильно - надо специалиста искать, если не получается самому.

Спасибо, вечером сегодня посмотрю. Пока что, вчера переустановил Apache - вроде полегчало. Если дней 7 проработает нормально и SWAP не будет расти, значит просто криво встал Apache.

Почта для домена ( https://lite.host/pochta/dlya-domena ) с безлимитными пользователями и доменами / Хостинг ( https://lite.host/hosting/dlya-blogov ) от 99 рублей / поддержка Let's Encrypt / PHP от 5.2 до 8.3 / SSH / бесплатный перенос,
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#13

Вот такой итог, есть процесс httpd, висит в TOP, при этом в apache status его нет.

Делаю strace -p PID:

poll([{fd=2098, events=POLLIN|POLLERR|POLLHUP}], 1, 6000) = 0 (Timeout)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})

Выходит примерно так:

http (1)

-> httpd (2)

--> httpd (3)

То есть главный порождает процесс, а еще один процесс порождает еще один.

Трассировка 3:

poll([{fd=2098, events=POLLIN|POLLERR|POLLHUP}], 1, 6000) = 0 (Timeout)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})

Трассировка 2:

wait4(PID_3 процесса,

Трассировка 1:

wait4(-1, 0x7fff31b2badc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)

Судя по всему, такие процессы копятся, судя по TOP'у и складываются в SWAP. Как неактивные.

Удается повторить данную ситуацию уже. Процессы начинают залипать таким образом после graceful.

Видимо данный баг: https://issues.apache.org/bugzilla/show_bug.cgi?id=42829

Для mpm prefork он был исправлен, а вот для mpm-itk проблема осталась актуальной, также нашел подобные темы с аналогичными проблемами, но решения нет.

Andreyka
На сайте с 19.02.2005
Offline
822
#14

Если у вас itk то сможете понять в каком юзере проблема, а дальше искать чего вам такое туда влили в этот аккаунт

Не стоит плодить сущности без необходимости
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#15
Andreyka:
Если у вас itk то сможете понять в каком юзере проблема, а дальше искать чего вам такое туда влили в этот аккаунт

Дело не в пользователе и не в его скриптах, подвисает процесс от любого пользователя.

Если бы все было так просто, то этой темы бы не было. Отлавливанием кривых скриптов делается часто.

У просмотренных пользователей может быть как банальный index.html файл с текстом "Сайт в разработке", так и полноценные сайты.

Тут баг именно в MPM-ITK и использовании graceful, жалоб на это встречается много: http://forum.ispsystem.com/ru/showthread.php?t=12480

http://lists.err.no/pipermail/mpm-itk/2011-October/000434.html - идентичное поведение моей проблеме

http://lists.err.no/pipermail/mpm-itk/2008-July/000066.html - до такого правда не доходит еще, слава богу

На сам баг ссылку, давал выше.

Проблему удается воспроизвести и на соседнем сервере, где также используется MPM-ITK, но graceful не используется.

После выполнения graceful произвольно залипают 2 процесса со статусом G.

Только вот в логах там добавляется такое:

[Sun Apr 28 14:56:29 2013] [error] child died with signal 11
Andreyka
На сайте с 19.02.2005
Offline
822
#16

У меня itk и graceful, проблемы не наблюдаю

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#17
Andreyka:
У меня itk и graceful, проблемы не наблюдаю

А какую версию Apache используете? Метод AcceptMutex? Какие модули подключены?

Если не сложно, приведите данную информацию.

Andreyka
На сайте с 19.02.2005
Offline
822
#18

Server version: Apache/2.2.24 (Unix)

Server built: Apr 15 2013 21:12:55

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: ITK

Compiled in modules:

core.c

mod_authn_file.c

mod_authn_default.c

mod_authz_host.c

mod_authz_groupfile.c

mod_authz_user.c

mod_authz_default.c

mod_auth_basic.c

mod_include.c

mod_filter.c

mod_log_config.c

mod_logio.c

mod_env.c

mod_expires.c

mod_headers.c

mod_setenvif.c

mod_version.c

mod_ssl.c

itk.c

http_core.c

mod_mime.c

mod_status.c

mod_autoindex.c

mod_asis.c

mod_suexec.c

mod_cgi.c

mod_negotiation.c

mod_dir.c

mod_actions.c

mod_speling.c

mod_userdir.c

mod_alias.c

mod_rewrite.c

mod_so.c

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#19
Andreyka:
Server version: Apache/2.2.24 (Unix)
Server built: Apr 15 2013 21:12:55
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: ITK
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_logio.c
mod_env.c
mod_expires.c
mod_headers.c
mod_setenvif.c
mod_version.c
mod_ssl.c
itk.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_suexec.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_speling.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c

Спасибо. PHP подключаете как CGI?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий