Mod Server-status Apache - помогите разобраться.

RF
На сайте с 15.12.2006
Offline
52
2031

На днях возникла проблема: перестали загружаться сайты с моего сервера. По статистике посмотрел, что кол-во процессов Apache достигло своего максимума в 450 шт и так все и висит. После перезагрузки сервака и некоторых продолжительных танцев с бубном, нашел проблемный сайт, закрыл в htaccess к нему доступ, после чего работа сервера нормализовалась.

В процессе работ над сервером, обнаружил модуль apache: "Server-status". И вот изучая данные этого модуля, никак не пойму: на сервере висит 31 процесс (20 requests currently being processed, 11 idle workers), а в списке вируальных хостов их аж 403 (Srv 0-0, 1-0, 2-0, ..., 402-0). Причем 372 процесса (от 403 отнять 31) не имеют PID, M (Mode of operation) у них "." и SS некоторых более 2000 сек., при том, что "Server uptime: 40 minutes 8 seconds". Нормально ли это? Точка в Mode of operation, на сколько я понимаю, это свободный слот Apache, через который новый пользователь может подключиться к нему. Почему старые процессы без PID так долго висят и не убиваются самим Apache?

P.S. Модуль Server Status обрезает длинные URL в колонке Request. Можно ли каким-либо образом заставить этот модуль отображать полный URL? Например вместо "GET /pathdirpath/pathdirpath/df137743636a902dce76015.g" получить "GET /pathdirpath/pathdirpath/df137743636a902dce76015.gif HTTP/1.1"

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

Лучше выложи скриншот

Не стоит плодить сущности без необходимости
iHead
На сайте с 25.04.2008
Offline
137
#2

Royal Flash, посмотрите конфиг апача на предмет MinSpareServers, MaxSpareServers, StartServers, MaxClients.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
M
На сайте с 16.09.2009
Offline
278
#3
Royal Flash:

В процессе работ над сервером, обнаружил модуль apache: "Server-status". И вот изучая данные этого модуля, никак не пойму: на сервере висит 31 процесс (20 requests currently being processed, 11 idle workers), а в списке вируальных хостов их аж 403 (Srv 0-0, 1-0, 2-0, ..., 402-0). Причем 372 процесса (от 403 отнять 31) не имеют PID, M (Mode of operation) у них "." и SS некоторых более 2000 сек., при том, что "Server uptime: 40 minutes 8 seconds". Нормально ли это?

1) Это _не процессы_. Для процесса, как Вы сами изволили сообразить - нужен PID.

2) Это воркеры, часть и которых уже давно была завершена в процессе работы сервера. И для них показываются некоторые данные, в основном - связанные с последним отработавшим там запросом.

3) Прочитайте документацию апача http://httpd.apache.org/docs/

Royal Flash:
Почему старые процессы без PID так долго висят и не убиваются самим Apache?

Потому что кто-то не читает документацию и выдумывает вместо всякую фигню.

Royal Flash:
Модуль Server Status обрезает длинные URL в колонке Request. Можно ли каким-либо образом заставить этот модуль отображать полный URL?

Да. Давайте, Вы сами найдете такую директиву mod_status. У модуля аж две конфигурационные директивы - справитесь.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
RF
На сайте с 15.12.2006
Offline
52
#4
myhand:


Это воркеры, часть и которых уже давно была завершена в процессе работы сервера. И для них показываются некоторые данные, в основном - связанные с последним отработавшим там запросом.
Прочитайте документацию апача http://httpd.apache.org/docs/

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

myhand:

Да. Давайте, Вы сами найдете такую директиву mod_status. У модуля аж две конфигурационные директивы - справитесь.

Наверное, Вы имели ввиду директиву SeeRequestTail, но это совсем не то: On показывает первые 63 символа URL, Off - последние 63. Директивы, которая бы позволяла отображать URL полностью, к сожалению нет, так как видите ли у разработчиков Apache исторически сложилось отображать только 63 символа...

iHead:
... посмотрите конфиг апача на предмет MinSpareServers, MaxSpareServers, StartServers, MaxClients.

Посмотрел:

    
StartServers 20
MinSpareServers 5
MaxSpareServers 20
# ServerLimit 450
ServerLimit 900
# MaxClients 450
MaxClients 900
MaxRequestsPerChild 4000

После увеличения ServerLimit и MaxClients в 2 раза - полет нормальный. У сервера 8 Гб оперативки и хороший проц - тянет.

M
На сайте с 16.09.2009
Offline
278
#5
Royal Flash:
Документацию почитал, но ответа на этот вопрос не нашел... Просьба дать ссылку на раздел в документации или разжевать подробнее.

Специального "раздела документации" - нет. В выводе mod_status есть легенды (Scoreboard Key и внизу, под выводом "расширенной" информации, если ExtendedStatus On). Если после этого что-то останется непонятным - Вам к прочтению разделы документации про разные mpm-модули, в частности mpm-prefork (который используется у Вас, скорее всего).

Royal Flash:
Наверное, Вы имели ввиду директиву SeeRequestTail

Да, по старой памяти. Действительно, ошибся. Мои извинения.

Royal Flash:
    

StartServers 20
MinSpareServers 5
MaxSpareServers 20
# ServerLimit 450
ServerLimit 900
# MaxClients 450
MaxClients 900
MaxRequestsPerChild 4000

После увеличения ServerLimit и MaxClients в 2 раза - полет нормальный. У сервера 8 Гб оперативки и хороший проц - тянет.

Безумные настройки. 900*20 ~ 17Gb. Серверу тупо памяти не хватит, чтобы обслужить все это. Я взял 20Mb как размер типового воркера апача (это еще не так много, навороченные CMS жрут и до 50Mb).

Поставьте перед апачем какой-нибудь проксирующий сервер. Второй экземпляр апача с mod_proxy или nginx. Если это еще не сделано - Вы должны иметь тому веские причины.

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