Apache 中的 Keep alive 和 Max_client 问题

Apache 中的 Keep alive 和 Max_client 问题

我已经在 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

当这种情况发生时,如果您不完全了解系统发生了什么(见下文),这里有一些建议:

  1. 首先,将启动服务器数量降低到 10 左右,MinSpare 和 MaxSpare 数量也一样。当 Web 服务器启动时,过高的数字可能会耗尽内存。

  2. 其次,尝试将您的值设置MaxKeepAliveRequests为较高的值:http://httpd.apache.org/docs/2.0/mod/core.html#maxkeepaliverequests。默认值为100,因此请尝试以 100 为增量增加(或任何您认为合适的数字),看看是否能达到最佳效果。您也可以尝试0,以获得“无限量”。

另外,请更新您的问题,说明发生这种情况时系统正在做什么。是内存不足还是交换(free -m)?CPU 是否已固定?您看到了什么top?您还在此机器上运行了什么?

相关内容