欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-08 23:50:31
...
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。