首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

pache的KeepAlive的设立

2012-09-22 
pache的KeepAlive的设置通过Apache的设置说明,我们已经能明白KeepAlive的原理。在对于一个包含许多图片的网

pache的KeepAlive的设置

通过Apache的设置说明,我们已经能明白KeepAlive的原理。在对于一个包含许多图片的网页来说, 客户端会在瞬间发出多个HTTP请求,此时多次建立TCP连接会大大降低响应速度。 此时通过持续连接,可以允许用户在一个TCP连接中发出多个HTTP请求, 减少TCP连接建立次数,提高响应速度。我们可以通过access_log统计出连续HTTP请求出现的次数、间隔时间、访问量, 以确定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout 太小发挥不了持续连接的作用;太大了,持续连接迟迟不断, 浪费TCP连接数不说,更糟糕的是系统中的 httpd 进程数目会因此不断增加, 使得系统负载升高,甚至会导致服务器失去响应。

但是当你的服务器只是在处理动态网页请求时,由于用户很少会瞬间请求多个动态网页 (一般都是打开页面之后阅读好半天才点下一页), 此时打开KeepAlive无异于浪费TCP连接数。

哪么什么决定着我们是不是要开启KeepAlive的因素就很简单的确定出来了,就是说在用户一个页面请求中是否会向服务器发出多个HTTP的请求。

对于我的哪个朋友,他们的服务器中有着动态应用,有着所有的图片,我看了一下,估算他们的首页中发出的请求类型为以下几种:text/html、text/css、application/octet-stream、text/javascript、image/gif、image/jpeg。一个首页发出了181次请求(我看了所有的请求,注意所有的请求都是同一个域名)。这里可能由应用程序生成的只有text/html和application/octet-stream,这种请求中text/html只有一次,而application/octet-stream也只有4次。哪么关闭KeepAlive对他们有帮助吗?我的回复是没有帮助,而且会让服务器的服务质量更差!

如果是这样的情况,怎么办呢?我的建议如下:?
1.如果我们每一个页面中只有一个请求是动态生成的,而180个(里面可能有4个不是,不过不重要了)都是静态的,哪么应该将静态与动态分开到两个服务器上(一台机器都可以)。将动态应用的KeepLive关闭,将静态服务器的KeepLive打开。?
2.前端前部署四层交换或七层交换或缓存服务器,这样会让系统的扩展做起来,同时也可以让服务器的KeepLive打开时有更好的效果。?
3.应该考虑优化下他们的apache了,听说一个进程有高达xxM的内存占用,比较恐怖,在10M以内比较正常的说,不过这是一个option了。

热点排行