使用select()调用的Apache2 100%超载

一天一到两次,我在Debian 5.0.3上的一个Apache(升级到最新的软件包)运行高达100%的CPU(几个进程),并保持这种状态,直到重新启动。 斯特雷西显示了很多这些;

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中检查你的系统范围的openfiles限制。