免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4281 | 回复: 4
打印 上一主题 下一主题

sysctl.conf与httpd.conf中keepalive设置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-01 16:22 |只看该作者 |倒序浏览
sysctl.conf中,比如
tcp_keepalive_time = 7200
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75
即某个TCP连接在idle 7200秒后,内核发起probe.如果probe 9次(每次间隔75秒)不成功,则内核才彻底放弃,认为该连接已失效
httpd.conf中
KeepAlive可以设置成on或者off,
如果为off,则用户连接处理完时立即关闭tcp连接。同一个用户再连的话就得重新三次握手了。
如果为on,则用户连接处理完时不关闭tcp连接,等KeepAliveTimeout秒后,才断开连接

现在的问题时,如果一台机器,
sysctl.conf中,tcp_keepalive_time = 7200
httpd.conf中,KeepAlive on KeepAliveTimeout 15
那么实际要等待多少秒后,才断开连接。也就是按哪个文件算?

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
2 [报告]
发表于 2011-03-01 17:07 |只看该作者
一个是内核控制,一个是程序自身控制。
按照我的理解,两者取最短。

我对内核不了解,不知到这两个keepalive是否同样功能。

说错的话请高人指出。

招聘 : 技术支持/维
论坛徽章:
0
3 [报告]
发表于 2011-03-02 10:21 |只看该作者
我也觉得是这两取最小的,毕竟是两个不同层面的限制,如果一个层面通不过,就只能断开了

论坛徽章:
0
4 [报告]
发表于 2011-03-02 19:14 |只看该作者
我觉得局部设置会优于全局设置

论坛徽章:
0
5 [报告]
发表于 2011-03-02 21:57 |只看该作者
sysctl.conf中,比如
tcp_keepalive_time = 7200
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75
...
wslmyb 发表于 2011-03-01 16:22



tcp对于http是透明的,tcp的具体参数对http没有意义。
也就是说, http认为 tcp(正常情况)是无限期的活着,在此基础上, http进行的超时控制。
通常的http服务器的实现中,为每个http连接维护一个超时值(实际上http连接是没有状态的), 每次收到数据会重置该值,如果超时,就关闭该http连接,当然也关闭对应的tcp连接。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP