设为首页 收藏本站
查看: 541|回复: 0

[经验分享] LAMP - Apache的KeepAlive On/Off

[复制链接]

尚未签到

发表于 2018-11-19 11:36:51 | 显示全部楼层 |阅读模式
  KeepAlive  意思为是否长连接。 后边可以设置 On 或者 Off
  简单理解就是这样: 如果设置成On,那么当apache完成用户的请求后,那么apache进程不会断开用户的请求连接,依然保持连接状态。设置成Off则当apache完成用户的请求后,那么apache进程会立即断开和用户的请求连接。
  如果,完成用户的连接依然连接,这样的好处是:当该用户的请求在过来时,apache会用这个已经建立的连接,不需要重新创建连接。这样会节省CPU的资源。但是却耗费了内存。为什么呢?可以假设这样的场景。假如keepalive 超时时间为10s,而每1s中有100个用户请求访问,每个用户3次连接,每个连接耗费2M内存,那么10s内建立的连接次数为1000次(跟用户每s请求次数无关),消耗内存为1000*2=2000M,相反,如果不保持长连接,同样的环境场景下,每1s内有100*3个连接,下一秒还是100*3个连接,也就是说永远都是100*3个连接,那么1s内甚至10s内消耗的内存为100*3*2=600M。 然而,在这10s内创建的连接次数为100*3*10=3000次,这样肯定消耗了更多的cpu资源。毕竟每次tcp连接都是需要cpu去处理的。
  问题来了,既然知道长连接与否的利与弊,那么如何判定什么时候On,什么时候Off?
  在上面的举例中,涉及到了一个数,那就是每个用户在1s内请求的次数,你再回去好好看看,如果把3改为1,是不是10s内得到的连接次数总和是一样的。对!那么这样无论是On还是Off,消耗的CPU资源是一样的。所以,我们考虑3种情况:
  1。用户浏览一个网页时,除了网页本身外,还引用了多个 javascript 文件,多个 css 文件,多个图片文件,并且这些文件都在同一个 HTTP 服务器上。
  2。用户浏览一个网页时,除了网页本身外,还引用一个 javascript 文件,一个图片文件。
  3。用户浏览的是一个动态网页,由程序即时生成内容,并且不引用其他内容。
  对于上面3中情况,我认为:1 最适合打开 KeepAlive ,2 随意,3 最适合关闭 KeepAlive(连接消耗的内存比较大)
  总结一下:
  在内存非常充足的服务器上,不管是否关闭 KeepAlive 功能,服务器性能不会有明显变化;
  如果服务器内存较少,或者服务器有非常大量的文件系统访问时,或者主要处理动态网页服务,关闭 KeepAlive 后可以节省很多内存,而节省出来的内存用于文件系统Cache,可以提高文件系统访问的性能,并且系统会更加稳定。
  目前的服务器,CPU很强,所以不用考虑频繁的tcp连接对cpu造成的压力,那还让它长连接干什么,故,建议关闭你的长连接吧!!!
  PS: 如果,你的服务器上请求量很大,那你最好还是关闭这个参数吧。我试过一次,打开长连接,并且设置超时时间为30s,结果仅仅十几s就把所有的httpd进程跑满。这样很危险的,直接让用户等待,等30s,这不扯淡嘛?即使是你设置成3s,照样会让用户等待3s,这样很不合理的。所以,归根结底还是关闭长连接吧,这样效率会更高。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636968-1-1.html 上篇帖子: httpd(apache)配置参数(待整理补全)v0.9 下篇帖子: apache https配置步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表