net.ipv4.tcp_fin_timeout真实意义

Posted 今夕何夕、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了net.ipv4.tcp_fin_timeout真实意义相关的知识,希望对你有一定的参考价值。

官网解释:https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html

百度的坑:

最初百度查到关于这个参数的结果,基本上都是这种解释:该参数控制tcp四次挥手过程中,主动请求断开连接的一方处于TIME_WAIT状态的时间,后面实践中发现,并非如此。

以下为四次挥手状态图:

经过实际测试,并查阅官方资料,发现该参数真实作用为:控制主动请求关闭tcp连接的一方,处于FIN-WAIT2状态的时间

手动配置Linux系统 net.ipv4.tcp_fin_timeout = 180,然后用telnet测试:

修改net.ipv4.tcp_fin_timeout = 60,测试结果:

看起来两者是相等的,但是,当修改值为其他某些值,结果并不完全相等,具体如何影响,任然不确定。

修改net.ipv4.tcp_fin_timeout = 10,每次会在23秒左右结束fin2状态,测试结果:

实际应用:

如果观察到服务器有大量处于FIN_WAIT2状态的连接,可以将net.ipv4.tcp_fin_timeout参数值调小,以便加快系统关闭处于FIN_WAIT2状态的TCP连接。

linux 内核优化参数

#----------------Kernel---Chris----2016.5.4-youhua-----------------#

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 4000    65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established = 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

#----------------END------------------#


本文出自 “土豆” 博客,谢绝转载!

以上是关于net.ipv4.tcp_fin_timeout真实意义的主要内容,如果未能解决你的问题,请参考以下文章

内核参数优化

linux 内核优化参数

linux 链接控制

2.6内核调优

性能测试 -- 内核调优

内核参数优化