我已经在 ubuntu 11.4(64 位)上安装了 Apache/2.2.17,具有 48 GB 的 RAM,并设置
KeepAlive ON
MaxKeepAliveRequests 100
keepalivetimeout to 6 (since lot of dynamic images)
StartServers 100
MinSpareServers 100
MaxSpareServers 150
ServerLimit 300
MaxClients 300
MaxRequestsPerChild 3000
但问题是 Apache 通常即使有 10-20 个用户也会达到其最大客户端数量,并且在重启后,其在前 10-15 分钟内达到接近 185 并且不会下降。有人可以帮忙找出原因吗?
答案1
当这种情况发生时,如果您不完全了解系统发生了什么(见下文),这里有一些建议:
首先,将启动服务器数量降低到 10 左右,MinSpare 和 MaxSpare 数量也一样。当 Web 服务器启动时,过高的数字可能会耗尽内存。
其次,尝试将您的值设置
MaxKeepAliveRequests
为较高的值:http://httpd.apache.org/docs/2.0/mod/core.html#maxkeepaliverequests。默认值为100
,因此请尝试以 100 为增量增加(或任何您认为合适的数字),看看是否能达到最佳效果。您也可以尝试0
,以获得“无限量”。
另外,请更新您的问题,说明发生这种情况时系统正在做什么。是内存不足还是交换(free -m
)?CPU 是否已固定?您看到了什么top
?您还在此机器上运行了什么?