HTTP的KeepAlive是开启还是关闭?

标签: http keepalive | 发表时间:2014-08-14 07:11 | 作者:Zhao1234567890123456
出处:http://blog.csdn.net

1、KeepAlive的概念与优势

        HTTP的KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的。当客户端发送一次请求,收到相应内容后,这个连接会保持一段时间,在该时间内的第二次就不需要再重新建立连接,就可以直接使用这次的连接来发送请求了,极大的提高了速度。

2、KeepAlive的劣势

        是不是所有网站都应该开启KeepAlive了?答案肯定是不是的。KeepAlive在增加访问效率的同时,也会增加服务器的压力。

3、apache配置KeepAlive

         apache通过配置KeepAlive和KeepAliveTimeout来控制KeepAlive,具体参数如下:

         KeepAlive  On/Off            (可以设置开启On或者是关闭Off)
         KeepAliveTimeout  10    (持久连接保持的时间,到时间会断开链接)

4、案例说明(来源互联网):

         假设 KeepAlive 的超时时间为 10 秒种,服务器每秒处理 50 个独立用户访问,那么系统中Apache的总进程数就是 10 * 50 = 500 个,如果一个进程占用 4M 内存,那么总共会消耗2G内存,所以可以看出,在这种配置中,相当消耗内存,但好处是系统只处理了 50次 TCP 的握手和关闭操作。
         如果关闭 KeepAlive,如果还是每秒50个用户访问,如果用户每次连续的请求数为3个,那么 Apache 的总进程数就是 50 * 3 = 150 个,如果还是每个进程占用 4M 内存,那么总的内存消耗为600M,这种配置能节省大量内存,但是,系统处理了 150 次 TCP 的握手和关闭的操作,因此又会多消耗一些 CPU 资源。

5、总结

        (1)如果内存和CPU都足够,开启和关闭KeepAlive对性能影响不大。
        (2)如果考虑服务器压力,如果是静态页面,大量的调用js或者图片的话,建议开启KeepAlive;如果是动态网页,建议关闭KeepAlive。


作者:Zhao1234567890123456 发表于2014-8-13 23:11:54 原文链接
阅读:56 评论:0 查看评论

相关 [http keepalive] 推荐:

HTTP的KeepAlive是开启还是关闭?

- - CSDN博客系统运维推荐文章
1、KeepAlive的概念与优势.         HTTP的KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的. 当客户端发送一次请求,收到相应内容后,这个连接会保持一段时间,在该时间内的第二次就不需要再重新建立连接,就可以直接使用这次的连接来发送请求了,极大的提高了速度.

KeepAlive详解 - HavenShen

- - 博客园_首页
KeepAlive既熟悉又陌生,踩过坑的同学都知道痛. 一线运维工程师踩坑之后对于KeepAlive的总结,你不应该错过. 最近工作中遇到一个问题,想把它记录下来,场景是这样的:. 从上图可以看出,用户通过Client访问的是LVS的VIP, VIP后端挂载的RealServer是Nginx服务器.

nginx + keepalive 实现HA

- - CSDN博客编程语言推荐文章
主nginx负载均衡器 192.168.166.203. 辅nginx负载均衡器 192.168.166.177. VIP地址 192.168.166.178. 二.修改配置文件为以下内容: [master slave].  state MASTER #(主机为MASTER,备用机为BACKUP).

聊聊 TCP 中的 KeepAlive 机制

- - ImportNew
服务端的系统设置中经常会和底层协议打交道,我们有必要重温一下曾经那些“听过”却不熟悉的名词. 今天聊的话题是 KeepAlive,在实际应用中又是怎么使用的. 为什么有Keepalive. 大家都做过电梯吧,假设电梯来了你先进去,你朋友还没进来,过一段时间电梯门就会自动关闭, 你应该没遇到过哪个电梯会一直等你朋友来了才关门的.

使用 Nginx 的 keepalive patch,nginx+memcached的TPS提升7倍

- 2sin18 - Linux@SOHU
编者按:本月初 Maxim Dounin,Nginx 最活跃的开发者之一,提交了 upstream keepalive patch,支持 http/fastcgi/memcached,除了减少和 upstream 的网络开销外,也意味着能反向代理 http chunked 响应了. 搜狐技术部CMS组的同学进行了一个简单的测试:.

HTTP Headers 入门

- johnny - Time Machine
非常感谢 @ytzong 同学在twitter上推荐这篇文章,原文在此. 本文系统的对HTTP Headers进行了简明易懂的阐述,我仅稍作笔记. 什么是HTTP Headers. HTTP是“Hypertext Transfer Protocol”的所写,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过http协议来传输的,比如这篇文章.

HTTP基础

- - ITeye博客
HTTP的结构主要包括下面几个要点:. HTTP的版本主要有1.0,1.1 和更高版本.    1.1 及以上版本允许在一个TCP连接上传送多个HTTP协议,1.0能 .    1.1 及以上版本多个请求和响应可以重叠,1.0不能.    1.1 增加了很多的请求头和响应头.     一个请求行,若干小心头,以及实体内容,其中的一些消息头和实体内容是可选的,消息头和实体内容需要空行隔开.

HTTP Header 详解

- - 博客园_Ruby's Louvre
HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议. HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应. 就整个网络资源传输而言,包括message-header和message-body两部分. 首先传递message- header,即 http header消息.

HTTP/2 in Netty

- -
Here, we created a context for the server with a JDK SSL provider, added a couple of ciphers, and configured the Application-Layer Protocol Negotiation for HTTP/2..

HTTP负载测试

- - 博客 - 伯乐在线
英文原文: ON HTTP LOAD TESTING 来源: oschina. 有很多人在谈论HTTP服务器软件的性能测试,也许是因为现在有太多的服务器选择. 这很好,但是我看到有人很多基本相同的问题,使得测试结果的推论值得怀疑. 在日常工作中花费了很多时间在高性能代理缓存和源站性能测试方面之后,这里有我认为比较重要的一些方面来分享.