Множатся httpd, как узнать, почему?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Fkabir
Сообщения: 369

Множатся httpd, как узнать, почему?

Сообщение Fkabir »

Ситуация. Смотрю top, там, скажем, 50 процессов. Вдруг пошел резко рост до 90-100 процессов и более, причем видно, что это все за счет роста процессов апача (httpd).

Задача: узнать, какой скрипт (сайт) множит эти процессы?
Или хотя бы - какой сайт, если виртуальных хостов множество. Как?
Интересует алгоритм с командами конкретными - что делать?

Совет "смотри логи" - не подходит, т.к.
- логов много
- много сайтов, для каждого - свой лог, все сразу не просмотришь
- логи (access.log error.log) обычно мне ни о чем не говорят
- смотреть быстро кучу логов - проблематично, т.к. при росте процессов апача кушается память и сервер висит, после ребута - обычно сложно выяснить, что забило память до ребута

Может есть какая команда, которая покажет:
- какие файлы вызвали процессы апача
- отсортирует процессы апача по количеству для каждого файла

Т.е., например, чтобы увидеть просто
http://domain1.com/file1.php - 10 процессов апача
http://domain1.com/file4.php - 8 процессов
http://domain1234567.com/file11111.php - 6 процессов
и т.п.

Есть такие команды? Или плагины? Модули? Чтобы выдавали инфу именно в таком виде, как я выше указал. Чтобы в реальном времени можно было это узнать. Если есть что-то, то что именно? Как это использовать или прикрутить?:) Если кто не хочет делиться публично, буду благодарен, если поделится в личке.

Спасибо сказали:
Fkabir
Сообщения: 369

Re: Множатся httpd, как узнать, почему?

Сообщение Fkabir »

Нашел команду

lsof -a -u nobody -c httpd
выводит список файлов, он большой, но тоже бестолковый, там показываются обращения апача к логам разным.
А мне надо знать, какой скрипт (файл) вызвал это обращение к логам. Должны быть способы это выяснить, но как?:)
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: Множатся httpd, как узнать, почему?

Сообщение arkhnchul »

http://httpd.apache.org/docs/2.0/mod/prefork.html - не совсем то, но оно не поможет?
вообще примерно нагрузку по сайтам можно как раз посмотреть в access.log - по кол-ву обращений к каждому из доменов. Анализаторов лога апача много, выбор есть.
Losing is fun!
Спасибо сказали:
Fkabir
Сообщения: 369

Re: Множатся httpd, как узнать, почему?

Сообщение Fkabir »

Мне важно знать, какой именно скрипт множит процессы. Сайтов много, на каждом много скриптов. Нужно точно узнать УРЛ скрипта (файл). Потому важно отследить, какой скрипт/файл в данную единицу времени запустил сколько процессов апача.
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Множатся httpd, как узнать, почему?

Сообщение neol »

http://httpd.apache.org/docs/1.3/mod/mod_status.html
или
http://httpd.apache.org/docs/2.0/mod/mod_status.html
в зависимости от версии apache. Можно более приятные вебморды прикрутить.

arkhnchul писал(а):
11.10.2010 16:50
http://httpd.apache.org/docs/2.0/mod/prefork.html - не совсем то, но оно не поможет?

Мда...
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: Множатся httpd, как узнать, почему?

Сообщение arkhnchul »

ну, что нагуглил)
Losing is fun!
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Множатся httpd, как узнать, почему?

Сообщение danger08 »

Смотреть параметры MPM (не факт, кстати, что человек именно `prefork` использует).

Для `prefork`, возможно стоит глобально уменьшить количество процессов сервера (параметры `StartServers`, `**SpareServers`, `ServerLimit` и т.п.) Значения там подбираются эспериментальным путём и чтением официальных доков, ну и исходя из нагрузки.

Про `mod_status` уже сказали выше. Могу ещё посоветовать mpm itk (весьма похож на `prefork`, но с дополнительными вкусными возможностями, включая лёгкий визуальный контроль по "принадлежности" процессов вирт. хостам).
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Множатся httpd, как узнать, почему?

Сообщение KiWi »

Fkabir писал(а):
11.10.2010 18:31
Мне важно знать, какой именно скрипт множит процессы. Сайтов много, на каждом много скриптов. Нужно точно узнать УРЛ скрипта (файл). Потому важно отследить, какой скрипт/файл в данную единицу времени запустил сколько процессов апача.

А вы уверены, что это какой-то один скрипт?) А, не, например, диск начал оттормаживаться? Или память кончилась? Или MySQL из-за чего-то стал медленней отвечать(таблички залочились, как вариант)? И из-за этого апач стал медленней отвечать и скопил кучу новых клиентов?

А так -- самый правильный способ -- попарсить логи и посмотреть что изменилось(куда стали ходить, насколько часто стали ходить). И, заодно, посмотреть среднее время ответов.
Спасибо сказали: