net.ipv4.tcp_fin_timeout

提高Linux应对短连接的负载能力

在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT 状态的socket。你可以用下面的命令看到:

netstat -ant| grep -i time_wait 

有时候,这个数目是惊人的:

netstat -ant|grep -i time_wait |wc -l

可能会超过三四万。这个时候,我们需要修改 linux kernel 的 tcp time wait的时间,缩短之,有个 sysctl 参数貌似可以使用,它是 /proc/sys/net/ipv4/tcp_fin_timeout,缺省值是 60,也就是60秒,很多网上的资料都说将这个数值设置低一些就可以减少netstat 里面的TIME_WAIT状态,但是这个说法是错误的。经过认真阅读Linux的内核源代码,我们发现这个数值其实是输出用的,修改之后并没有真正的读回内核中进行使用,而内核中真正管用的是一个宏定义,在 $KERNEL/include/net/tcp.h里面,有下面的行:

#define TCP_TIMEWAIT_LEN (60*HZ)

而这个宏是真正控制 TCP TIME_WAIT 状态的超时时间的。如果我们希望减少 TIME_WAIT 状态的数目(从而节省一点点内核操作时间),那么可以把这个数值设置低一些,根据我们的测试,设置为 10 秒比较合适

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

第28章 以太网交换基本原理

路由器或三层交换机的三层接口处于独立的广播域中,终端主机发出的广播帧在三层接口被终止。

12020
来自专栏架构师之路

微信为什么不丢消息?

上一章和大家分享了《http如何像tcp一样实时的收消息?》, 本章来聊一聊即时通讯(Instant Messaging,后简称im)消息的可靠投递。 一、报文...

66780
来自专栏IT技术精选文摘

快速理解网络通信协议

18020
来自专栏小李刀刀的专栏

前端构建工具 Gulp.js 上手实例

在软件开发中使用自动化构建工具的好处是显而易见的。通过工具自动化运行大量单调乏味、重复性的任务,比如图像压缩、文件合并、代码压缩、单元测试等等,可以为开发者节约...

46570
来自专栏架构师之路

一分钟了解四层/七层反向代理 | 架构师之路

上一篇文章《session一致性架构设计实践》,对于其中的第三种“反向代理hash法”,不少同学留言问: 什么是四层反向代理hash 什么是七层反向代理hash...

56440
来自专栏前沿技墅

服务化的基石:聊聊通信协议那些事儿

25270
来自专栏北京马哥教育

什么是SYN Flood攻击?

SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的T...

54990
来自专栏Laoqi's Linux运维专列

LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义

11930
来自专栏Danny的专栏

必备的网络常用测试命令(tracert命令)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

3K20
来自专栏从流域到海域

在浏览器地址栏输入百度网址之后的故事(面试必考)

面试的时候,面试官经常会问这样的问题,我在浏览器地址栏输入”www.baidu.com”,之后发生了哪些事情呢,这个问题其实是想问你与网页访问有关的网络协议,下...

23850

扫码关注云+社区

领取腾讯云代金券