Один или два раза в день один из моих Apache на Debian 5.0.3 (обновленный до последних пакетов) загружает до 100% ЦП (несколько процессов) и остается таким до перезапуска. Стрейс показывает многие из них;
select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0})
select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0})
select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0})
select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0})
select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0})
select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0})
быстро следуя друг за другом.
Что бы это могло быть? Это обычная установка LAMP с memcached.
Проблема началась (мы думаем), когда мы начали выводить S3 напрямую вместо того, чтобы сначала получать весь файл, поэтому в pseudecode;
Сначала у нас было;
print file_get_contents($s3url);
теперь у нас есть;
$f = fopen($s3url, "r");
while($s=fread($f, 4096)) echo $s;
fclose($f);
Вы проверяли максимальное количество открытых файлов для пользователя сервера Apache?
su -s / bin / sh - www-data ulimit -a
затем проверьте лимит открытых файлов вашей системы в / proc.