Евгений Русаченко

Евгений Русаченко
Рейтинг
166
Регистрация
17.04.2013

Пользуюсь их услугами уже около 4-5 лет. Таких глобальных проблем ранее у них не наблюдалось, если что-то было, оперативно решалось.

Последний месяц - сплошные проблемы. Тех. поддержка дает типичные ответы - на сервере есть проблемы, ведутся работы. Переносили между тремя серверами (ASPER, FALCO, PALADIN) - на всех трех серверах были проблемы.

Load Average бывает зашкаливает за 30.

Проблемы последнее время у них не только с DDoS атаками.

В данный момент прислали письмо, что была атака на корневой маршрутизатор, из-за чего и лежали все их сервисы, в том числе и выделенные сервера, хостинг, по поводу VDS не знаю - не использую. Но думаю тоже были недоступны.

До последнего надеюсь на решение всех их проблем...

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?

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

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

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

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

Вот такой итог, есть процесс 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:
Если ничего не помогает - обратитесь к специалисту

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

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

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

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

Pilat:
удалено автором

Да, я смотрел данную тему. Приведенные программки ничего не выводят:

Overall swap used: 0 kB
========================================
kB pid name
========================================

На сколько я понимаю, они должны выводить непосредственно те процессы, которые активно сидят в SWAP'е.

Andreyka:
Попробуйте отключить своп вообще
И проверьте что жрет память

Особо ничего не менялось. SWAP я подключил после появления проблемы, "мало ли, памяти не хватает".

Можно попробовать отключить еще раз, но как при этом выявлять, что кушает память? Память есть в этом случае, просто она отведена под cached.

Pilat:
Тут что-то непонятное - swap не должен быть заполнен до конца, никаких таких редкоиспользуемых страниц ровно 4 гигабйта у apache+nginx не бывает (обычно). Разве что плодятся мёртвые процессы и складываются в своп? Или у Mysql какие-то нетипичные параметры. Попробуйте выводить по крону список процессов, причём полный (не как в Вашем листинге), либо поставить zabbix (на соседнюю VDS) и помониторить раз в 30 секунд основные параметры.

Проблема актуальна, если не перезагружать Apache начинает что-то попадать в SWAP, причем это "что-то" просто там лежит и не используется. Памяти свободной много при этом, вся отдана под дисковый кеш, но если при этом SWAP заполнится на 100%, то сервер падает с OOM Killer, хотя cached памяти 9 гб (как на скриншоте), Linux её просто не отдает программам.

Сейчас наблюдаю такую картинку, что 1 день бывает проработает нормально, потом начинает расти SWAP, постепенно, по чуть-чуть. Мертвых процессов Apache нет, колеблятся всегда от 5 до 20 максимум, зависит от нагрузки на сервер.

Параметры Apache такие:

StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 64
MaxClients 64
MaxRequestsPerChild 1000

RLimitMEM 8589934592
RLimitCPU 240

Проблема вряд ли связана с MySQL, настройки стандартные, подняты буферы, кеши, такая же конфигурация, один в один на соседнем контейнере KVM - работает исправно.

Apache ставился Cpanel через EasyApache с модулем MPM-ITK, грешу что что-то там не так. Планирую пересобрать ручками и понаблюдать как будет работать, если всё OK, то просто заменить Apache на свой и всё.

eis:
ТС не указал главного - какой планируемый онлайн ожидается.

Если проект приватный, как выше сказали, то тут и малобюджетным вариантом можно обойтись.

Да, согласен. Я о таких вещах просто не задумываюсь, сразу знаю, что мне надо под проект и конкретными вещами интересуюсь. Поэтому и говорил выше, что вполне может хватить.

---------- Добавлено 21.04.2013 в 22:42 ----------

voltamper:
для начала 200
публичный

А ранее занимались L2? Был ли опыт запуска? Если не было, смотрите в сторону VPS / VDS. Если опыт был и точно метите на 200+, то смотрите в сторону выделенных серверов.

Всего: 1030