`
iegyiy
  • 浏览: 20536 次
社区版块
存档分类
最新评论

服务器优化Tip-Apache的KeepAlive On是否要开启长连接

阅读更多
apache配置:

vi /usr/local/apache/conf/httpd.conf

Timeout 300

KeepAlive On

说明:

打开 KeepAlive 后,意味着每次用户完成全部访问后,都要保持一定时间后才关闭会关闭 TCP 连接,那么在关闭连接之前,必然会有一个 Apache 进程对应于该用户而不能处理其他用户,假设 KeepAlive 的超时时间为 10 秒种,服务器每秒处理 50 个独立用户访问,那么系统中 Apache 的总进程数就是 10 * 50 = 500 个,如果一个进程占用 4M 内存,那么总共会消耗 2G 内存,所以可以看出,在这种配置中,相当消耗内存,但好处是系统只处理了 50次 TCP 的握手和关闭操作。另外,如果访问压力非常大的服务器,由于超时的设置,部分进程尚未释放请求,导致后来的请求无法被处理,这就出现Time out问题了。

如果关闭 KeepAlive,如果还是每秒50个用户访问,如果用户每次连续的请求数为3个,那么 Apache 的总进程数就是 50 * 3 = 150 个,如果还是每个进程占用 4M 内存,那么总的内存消耗为 600M,这种配置能节省大量内存,但是,系统处理了 150 次 TCP 的握手和关闭的操作,因此又会多消耗一些 CPU 资源。

总结一下:
1.对于动态网页服务,建议关闭KeepAlive,如果配置了rewrite,更是要关闭。

2.对于访问量超大的服务,也建议关闭KeepAlive。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics