linux 设置 tcp_keepalive_time,tcp参数详解之 tcp_keepalive_time

tcp_keepalive_time

tcp_keepalive_time 值控制 TCP/IP 尝试验证空闲连接是否完好的频率。 如果这段时间内没有活动,则会发送保持活动信号。 如果网络工作正常,而且接收方是活动的,它就会响应。 如果需要对丢失接收方敏感,换句话说,需要更快地发现丢失了接收方,请考虑减小这个值。 如果长期不活动的空闲连接出现次数较多,而丢失接收方的情况出现较少,您可能会要提高该值以减少开销。

缺省情况下,如果空闲连接 7200 秒(2 小时)内没有活动,Linux 就发送保持活动的消息。 通常,1800 秒是首选值,从而一半的已关闭连接会在 30 分钟内被检测到。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/ipv4/tcp_keepalive_time

其中 X 由期望的秒数替换。

更详细的资料:

-------------------------------------

CLOSE_WAIT,TCP的癌症,TCP的朋友。

CLOSE_WAIT状态的生成原因

首先我们知道,如果我们的服务器程序APACHE处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!

因为如果是CLIENT端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet:

Client --->  FIN  --->  Server

Client

这时候Client端处于FIN_WAIT_2状态;而Server 程序处于CLOSE_WAIT状态。

Client

这时Server 发送FIN给Client,Server 就置为LAST_ACK状态。

Client --->  ACK  --->  Server

Client回应了ACK,那么Server 的套接字才会真正置为CLOSED状态。

Server 程序处于CLOSE_WAIT状态,而不是LAST_ACK状态,说明还没有发FIN给Client,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FIN packet。

通常来说,一个CLOSE_WAIT会维持至少2个小时的时间。如果有个流氓特地写了个程序,给你造成一堆的CLOSE_WAIT,消耗

你的资源,那么通常是等不到释放那一刻,系统就已经解决崩溃了。

只能通过修改一下TCP/IP的参数,来缩短这个时间:修改tcp_keepalive_*系列参数有助于解决这个问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP keep alive是一种机制,用于检测空闲的TCP连接是否仍然有效。它通过发送探测报文来维持连接的活跃状态。在Linux系统中,可以通过修改相关属性来配置TCP keep alive的行为。这些属性包括tcp_keepalive_timetcp_keepalive_probes和tcp_keepalive_intvl。\[2\] - tcp_keepalive_time表示一个连接在空闲多长时间后开始发送keep-alive探测报文,默认值为7200秒(2小时)。 - tcp_keepalive_probes表示在没有从对端获得响应的情况下,最多发送多少个keep-alive探测报文后终止连接,默认值为9。 - tcp_keepalive_intvl表示两个连续的keep-alive探测报文之间的时间间隔,默认值为75秒。 在Linux中,可以通过命令行查看当前的TCP keep alive配置,例如使用命令`sudo sysctl -a | grep keepalive`。\[1\]此外,还可以通过修改全局配置文件`/etc/sysctl.conf`来修改TCP keep alive的默认值。\[3\]请注意,TCP keep alive的具体行为可能会受到底层连接跟踪机制和应用程序超时的影响。 #### 引用[.reference_title] - *1* *2* *3* [TCP keepalive的详解(解惑)](https://blog.csdn.net/lanyang123456/article/details/90578453)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值