Показать сообщение отдельно
Старый 09.01.2006, 15:24     # 1
AleXXXSoft
Guest
 
Сообщения: n/a

Question Странное поведение апача

Исходные данные:

Linux Debian Sarge, ядро 2.6.8-2-686-smp
Apache/1.3.33 (Debian GNU/Linux) mod_throttle/3.1.2

Сайт посещаемый (1500 уников, 15000 хитов), тут же на апаче реализован сервис скачки файлов, файлы льются подолгу, одноврменно льет около 100-150 человек, процессы спокойно висят жрать не просят, все работает. Каждый процесс апача весит около 6 метров, памяти хватает.

Проблемы:

Ни с того ни с сего (где-то день-два после рестарта) все чайлдовые процессы валятся в глубокий ступор... висят в топе с высоким приоритетом и в состоянии R, проц при этом скушан на 97%, load average всегда разный, но всегда необычно высок от 6 до 180... рестарт апача сразу помогает.

Некоторые настройки и подозрения на них:

Сперва думал что досят (слишком много форкалось апачей постоянно, поставил лимиты с помощью троттла - 10 запросов в секунду к закачке и 100 запросов в секунду ко всему сайту), все работало нормально, по статистике троттла лимиты превышаются периодически в 1.5-3 раза, он их отправляет на 503-ю, то есть все хорошо.

В конфиге:

Код:
Timeout 10
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 10

SendBufferSize 1048576

MinSpareServers 2
MaxSpareServers 7

StartServers 10
MaxClients 220
MaxRequestsPerChild 0
Потом пало подозрение на MaxRequestsPerChild - там было число около 200, то бишь чайлд отработав 200 запросов прибивался и запускался новый, так как чайлды висели подолгу (отдавая файлы) то их в такой ситуации копилось слишком много, и все падало, сейчас поставил ноль, то бишь не ограничиваю кол-во запросов на чайлда.

Собственно вопросик:

Сталкивался ли кто с таким, и как бороли?

P.S. Nginx и прочие легковесы для отдачи статики не предлагать, тут есть свои хитрости, ибо каждый байтик на счету, за него заплочены деньги клиентов.

В догонку:

только что в логе заметил, в момент последнего падения вот что:
server reached MaxClients setting, consider raising the MaxClients setting

я почему-то думал, что у меньшая это значение, апач не сможет насоздавать потомков больше, чем я указал.... или я не прав?