FreeBsd 4.10
Высокопосещаемый ресурс, около 10000 чел в день.
Аpache/1.3.31 mod_jk/1.2.5 PHP/4.3.7 mod_ssl/2.8.18 OpenSSL/0.9.7d
сейчас на сайте 53 человека, число процессов httpd=23Проблема такая, вдруг ни с того ни с сего число процессов httpd становится
300, а то и 450!
В этот момент на сервере дикие тормоза. Сайт не работает, по ssh недостучаться. Сервер в это время жив, пингуется. Просто httpd его ужасно напрягает. В логах httpdhttpd in malloc(): warning: recursive call
FATAL: emalloc(): Unable to allocate 129 bytes
httpd in malloc(): warning: recursive call
FATAL: emalloc(): Unable to allocate 129 bytes
Написал скрипт, если число процессов больше 300, рестартим апач. Пока сервер держится. Но это же не решение! Где копать, куда смотреть?Часть конфига апача
ServerType standalone
Timeout 300
KeepAlive off
MaxKeepAliveRequests 1000
KeepAliveTimeout 15
MinSpareServers 10
MaxSpareServers 30
StartServers 10
MaxClients 500
MaxRequestsPerChild 10
>MaxClients 500Чего заказывал, то и получил
>>MaxClients 500
>
>Чего заказывал, то и получилА если при меньшем числе, в логах надписи типа
"MaxClients reached. Надо б его увеличить"
эт так, я примерно вспомнил :)
>>>MaxClients 500
>>
>>Чего заказывал, то и получил
>
>А если при меньшем числе, в логах надписи типа
>"MaxClients reached. Надо б его увеличить"
>эт так, я примерно вспомнил :)Ну так выбирай, чего ты хочешь. Сначала ты разрешаешь Апачу создавать 500 процессов, а потом убиваешь его на 300.
Разумеется, для данного железа и софта есть ограничение на количество запросов. Ты, похоже, его превысил. Ищи, в чем узкое место.