• 人民网评:营造风清气正的网络空间 2019-12-08
  • 传统佳节遇上新潮玩法 嗨翻这个端午小长假 2019-12-08
  • “三个蓬勃生机”彰显党取得的伟大胜利——深入学习贯彻习近平同志“七一”重要讲话精神 2019-12-06
  • 商务部回应中美经贸问题:中方谈判的大门始终是敞开的 2019-12-06
  • 以古鉴今,习近平多次提及屈原 2019-11-24
  • 意大利高山牧羊排队爬雪山 景象壮观 2019-11-23
  • 日韩农协:远观相似,近看有别 2019-11-23
  • 居然618理想生活狂欢季盛大启航 尖叫、嗨翻、乐道进入科技快车道 2019-11-16
  • 于正发微博支持杨蓉 不过不忘调侃她要减肥了 2019-11-15
  • 四川老师陪玉树学生回青海高考 还将指导学生填志愿 2019-11-15
  • 安农大选配50名资深教授担任产业联盟“盟主” 2019-11-15
  • 香港迪士尼推“无现金”体验便利游客 2019-11-14
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-11-14
  • 出生打满分 8斤宝宝为何测不出血糖? 2019-11-10
  • 百姓故事:古船匠人周平东 2019-11-07
  • 您当前的位置:26选5复式玩法>>建站资讯>>SEO技术SEO技术

    什么是Keep-Alive模式?开启Keep-Alive的好处有哪些?

    26选5复式玩法 www.vsnbz.tw 点击数:73362012-03-22 22:50:53 来源: 26选5复式玩法 www.vsnbz.tw

    新闻摘要:最近比较喜欢做一些细节的优化,主要是图片优化、定义以前没定义过的图片的宽、高及页面代码、css、js优化的方面。最近在使用一个谷歌的page speed,这个当然必须在火狐浏览器下才支持的插件,里边提到一项开启keep-alive,具体是什么是Keep-Alive模式?开启Keep-Alive的好处有哪些呢?

    最近比较喜欢做一些细节的优化,主要是图片优化、定义以前没定义过的图片的宽、高及页面代码、css、js优化的方面。最近在使用一个谷歌的page speed,这个当然必须在火狐浏览器下才支持的插件,里边提到一项开启keep-alive,具体是什么是Keep-Alive模式?开启Keep-Alive的好处有哪些呢?现把关于这方面的东西分享出来,大家参考下。

    一、什么是Keep-Alive模式?

    我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
    http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。

    2.开启Keep-Alive的好处

    KeepAlive 选项到底有什么用处?如果你用过Mysql ,应该知道Mysql的连接属性中有一个与KeepAlive 类似的Persistent Connection,即:长连接(PConnect)。该属性打开的话,可以使一次TCP连接为同一用户的多次请求服务,提高了响应速度。

    比如很多网页中图片、CSS、JS、Html都在一台Server上,当用户访问其中的Html网页时,网页中的图片、Css、Js都构成了访问请求,打开KeepAlive 属性可以有效地降低TCP握手的次数(当然浏览器对同一域下同时请求的图片数有限制,一般是2),减少httpd进程数,从而降低内存的使用(假定prefork模式)。MaxKeepAliveRequests 和KeepAliveTimeOut 两个属性在KeepAlive =On时起作用,可以控制持久连接的生存时间和最大服务请求数。

    不过,上面说的只是一种情形,那就是静态网页居多的情况下,并且网页中的其他请求与网页在同一台Server上。当你的应用动态程序(比如:php )居多,用户访问时由动态程序即时生成html内容,html内容中图片素材和Css、Js等比较少或者散列在其他Server上时,KeepAlive =On反而会降低Apache 的性能。为什么呢?

    前面提到过,KeepAlive =On时,每次用户访问,打开一个TCP连接,Apache 都会保持该连接一段时间,以便该连接能连续为同一client服务,在KeepAliveTimeOut还没到期并且MaxKeepAliveRequests还没到阈值之前,Apache 必然要有一个httpd进程来维持该连接,httpd进程不是廉价的,他要消耗内存和CPU时间片的。假如当前Apache 每秒响应100个用户访问,KeepAliveTimeOut=5,此时httpd进程数就是100*5=500个(prefork 模式),一个httpd进程消耗5M内存的话,就是500*5M=2500M=2.5G,夸张吧?当然,Apache 与Client只进行了100次TCP连接。如果你的内存够大,系统负载不会太高,如果你的内存小于2.5G,就会用到Swap,频繁的Swap切换会加重CPU的Load。

    现在我们关掉KeepAlive ,Apache 仍然每秒响应100个用户访问,因为我们将图片、js、css等分离出去了,每次访问只有1个request,此时httpd的进程数是100*1=100个,使用内存100*5M=500M,此时Apache 与Client也是进行了100次TCP连接。性能却提升了太多。
    当KeepAlive =On时,KeepAliveTimeOut的设置其实也是一个问题,设置的过短,会导致Apache 频繁建立连接,给Cpu造成压力,设置的过长,系统中就会堆积无用的Http连接,消耗掉大量内存,具体设置多少,可以进行不断的调节,因你的网站浏览和服务器配置 而异。
    小总结:
    1、当你的Server内存充足时,KeepAlive =On还是Off对系统性能影响不大。
    2、当你的Server上静态网页(Html、图片、Css、Js)居多时,建议打开KeepAlive 。
    3、当你的Server多为动态请求(因为连接数据库,对文件系统访问较多),KeepAlive 关掉,会节省一定的内存,节省的内存正好可以作为文件系统的Cache(vmstat命令中cache一列),降低I/O压力。
    文章地址://www.vsnbz.tw/seo/n29.html  转载请注明作者及原始出处!
    【文章如需转载请注明:转载自临朐天宇网络://www.vsnbz.tw】
    本文地址://www.vsnbz.tw/seo/n29.html
    【作者:潍坊seo】 返回顶端

    工作日:9:00-21:00

    邮箱[email protected]

    扫一扫加我好友扫描二维码

    26选5复式玩法
  • 人民网评:营造风清气正的网络空间 2019-12-08
  • 传统佳节遇上新潮玩法 嗨翻这个端午小长假 2019-12-08
  • “三个蓬勃生机”彰显党取得的伟大胜利——深入学习贯彻习近平同志“七一”重要讲话精神 2019-12-06
  • 商务部回应中美经贸问题:中方谈判的大门始终是敞开的 2019-12-06
  • 以古鉴今,习近平多次提及屈原 2019-11-24
  • 意大利高山牧羊排队爬雪山 景象壮观 2019-11-23
  • 日韩农协:远观相似,近看有别 2019-11-23
  • 居然618理想生活狂欢季盛大启航 尖叫、嗨翻、乐道进入科技快车道 2019-11-16
  • 于正发微博支持杨蓉 不过不忘调侃她要减肥了 2019-11-15
  • 四川老师陪玉树学生回青海高考 还将指导学生填志愿 2019-11-15
  • 安农大选配50名资深教授担任产业联盟“盟主” 2019-11-15
  • 香港迪士尼推“无现金”体验便利游客 2019-11-14
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-11-14
  • 出生打满分 8斤宝宝为何测不出血糖? 2019-11-10
  • 百姓故事:古船匠人周平东 2019-11-07
  • 金牛棋牌是假的 加拿极速飞艇开奖记录 顶呱刮app软件下载 安卓单机捕鱼达人下载 河南快3今天开奖走势图 开元棋牌app二维码 双色球最准公式 五子棋游戏单机版 河南快3基本走势图彩票 澳洲幸运5是什么