Господа, имеется следующая ситуация: апач сконфигурирован для работы большого числа процессов, но по факту запускает только 4. В результате 4 процесса зашиваются и сайт тормозит. В чем может быть проблема?
Все работает на VDS с CentOS + Nginx + Apache/2.2.3
Apache использует модуль prefork, вот кусок конфигурации:
<IfModule prefork.c>
MaxKeepAliveRequests 100
KeepAliveTimeout 5
ServerLimit 50
StartServers 15
MinSpareServers 15
MaxSpareServers 20
MaxClients 50
MaxRequestsPerChild 500
server-status выдает примерно следующее:
WW__...............................
Srv PID Acc M CPU SS Req Conn Child Slot
0-1 13520 0/87/90 W 19.02 0 0 0.0 0.15 0.15
1-1 22246 0/13/113 W 7.95 9 0 0.0 0.06 0.99
2-1 13522 0/96/107 _ 21.55 0 0 0.0 0.35 0.45
3-1 17913 0/51/151 _ 15.45 0 0 0.0 0.09 0.44
Т.е. всегда работают только первые четыре слота (WW__), остальные — отдыхают. Всегда.
В /etc/security/limits.conf никаких лимитов не задано.
ps ax?
на чем 4 процесса зашиваются, что тормозит как тормозит, что с мускулом, почему нет нгинкса для статики? какая нагрузка на сайт? где картинки из лайв интернета?
Зашиваются на работе с тяжелой CMSкой. Нгинкс стоит, это упомянуто в описании вопроса.
Вопрос не в том, почему тормозит, а в том, почему апач не создает больше 4х процессов.
Пока единственная догадка, похожая на правду — нехватка выделенной памяти на виртуалке. Но возможно есть и другие причины, с которыми удастся справиться без смены хостинга.
Настройки я смотрел и менял только в файле /etc/httpd/conf/httpd.conf (который реально используется).
Но оказалось что всё что касается префорка хоть и было указано в основном файле, но также было продублировано в отдельный файл /etc/httpd/conf.d/prefork.conf — его я сразу не заметил =\
Хм… а в error_log/messages он ничего не пишет?
на всякий случай покажите ulimit -a
еще идея — возможно есть ограничение на к-во одновременных соединений с ip в фаерволе?