tcp_tw_reuse、tcp_tw_recycle、tcp_fin_timeout参数介绍
参数介绍
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
客户端主动关闭tcp socket时:

客户端发送FIN报文段,进入FIN_WAIT_1状态。
服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。
客户端收到FIN的确认报文段,进入FIN_WAIT_2状态。
服务器端发送FIN报文端,进入LAST_ACK状态。
客户端收到FIN报文端,发送FIN的ACK,同时进入TIME_WAIT状态,启动TIME_WAIT定时器,超时时间设为2MSL。
服务器端收到FIN的ACK,进入CLOSED状态。
客户端在k时间内没收到对端的任何响应,TIME_WAIT超时,进入CLOSED状态。
配置效果
- tw_reuse,tw_recycle 必须在客户端和服务端 timestamps 开启时才管用(默认打开)
- tw_reuse 只对客户端起作用,开启后客户端在1s内回收
- tw_recycle 对客户端和服务器同时起作用,开启后在 3.5*RTO 内回收,RTO 200ms~ 120s 具体时间视网络状况。内网状况比tw_reuse 稍快,公网尤其移动网络大多要比tw_reuse 慢,优点就是能够回收服务端的TIME_WAIT数量。
对于客户端
- 作为客户端因为有端口65535问题,TIME_OUT过多直接影响处理能力,打开tw_reuse 即可解决,不建议同时打开tw_recycle,帮助不大;
- tw_reuse 帮助客户端1s完成连接回收,基本可实现单机6w/s短连接请求,需要再高就增加IP数量;
- 如果内网压测场景,且客户端不需要接收连接,同时 tw_recycle 会有一点点好处;
- 业务上也可以设计由服务端主动关闭连接。
对于服务端
- 打开tw_reuse无效
- 线上环境 tw_recycle 不建议打开,服务器处于NAT 负载后,可能造成部分部分经过NET的连接失败,一般虚拟化、容器相关的服务都会启动NAT;
- 服务器TIME_WAIT高,可提高tcp_max_tw_buckets的值。
tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值, 如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。该参数默认为 180000,过多的TIME_WAIT套接字会使Web服务器变慢。
影响
针对业务或服务中启用NAT(如虚拟化、容器相关的服务),打开 tw_recycle可能会造成无法连接的情况,因为 tw_recycle 依赖timestamps,经过NAT后timestamps会变混乱。
参考来源:https://blog.csdn.net/mabin2005/article/details/120010335
tcp_tw_reuse、tcp_tw_recycle、tcp_fin_timeout参数介绍的更多相关文章
- Linux实例常用内核网络参数介绍与常见问题处理---重要
文章转载自:https://help.aliyun.com/knowledge_detail/41334.html 本文主要介绍如下几点内容,您可以根据实际需要选择. 查看和修改Linux实例内核参数 ...
- Linux 实例常用内核网络参数介绍与常见问题处理
本文总结了常见的 Linux 内核参数及相关问题.修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数. 了解参数的具体作用,且注意同类型或版本环境的内核参数可能有所 ...
- SQLMAP参数介绍
转自:http://zhan.renren.com/bugpower?gid=3602888498044629629&checked=true SQLMAP参数介绍 sqlmap的使用方式:p ...
- G++ 参数介绍(转载)
g++参数介绍 From: http://www.cnblogs.com/lidan/archive/2011/05/25/2239517.html gcc and g++分别是gnu的c & ...
- pentaho cde 画图参数介绍
初步接触pentaho,由于在国内的资料很少,唯有看英文文档,做了N次反复尝试,挖掘了pentaho CDE中画图的一些基本参数. 下面就列出来了一些常用参数介绍: crosstabMode:表明如果 ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- 【体系结构】Oracle参数介绍
[体系结构]Oracle参数介绍 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...
- Bootstrap Paginator 分页插件参数介绍及使用
Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态 ...
- Apache中 RewriteRule 规则参数介绍
Apache中 RewriteRule 规则参数介绍 摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量 ...
- Linux 启动参数介绍
Linux 启动参数介绍 取自2.6.18 kernel Documentation/i386/boot.txt 文件中介绍 vga= 这里的不是一个整数(在C语言表示法中,应是十进制,八进制或者十六 ...
随机推荐
- sendmail发送慢的问题
1.使用python的脚本,发送邮件.代码如下: 点击查看代码 [root@ZabbixServerMasterNode ~]# cd /etc/zabbix/alertscripts/ [root@ ...
- 联想G470安装黑苹果
macos10136 黑苹果usb无线网卡 1.系统下载: 下面是我自制的带clover 4596版本的u盘镜像: 链接: https://pan.baidu.com/s/1wRdVddwkei7bf ...
- postgresql性能优化3:分区表
一.分区表产生的背景 随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢. 加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等.这些方法都 ...
- 助力抗疫 Splashtop 远程控制软件限时免费
近期国内疫情又有抬头趋势,给我们的工作.生活带来诸多不便.面对疫情,居家办公是一个兼顾安全健康和保持生产力的好办法.据了解,很多广州的企业现在已经在关注或开始部署远程办公方案. 为了帮助疫情中高风险地 ...
- 【源码】蚁群算法TSP问题可视化
ACO.Visualization项目 本项目演示蚁群算法求解旅行商问题的可视化过程,包括路径上的信息素浓度.蚁群的运动过程等.项目相关的代码:https://github.com/anycad/AC ...
- 如何使用 JavaScript 获取当前页面帧率 FPS
可以通过计算每秒 window.requestAnimationFrame 的调用频率来做为 FPS 值.它接收一个回调函数,该回调函数会在浏览器下一次重绘之前执行.所以只要我们循环调用并记录单位时间 ...
- winform——windows 服务的安装 卸载 启动 停止
安装服务和卸载服务采用process启动命令行的方式.启动服务和停止服务用到了 System.ServiceProcess.ServiceController这个类. 程序是这样运行的,首先启动服 ...
- 宝塔面板6.X在Docker中安装宝塔面板5.9.1 – 我是不是太闲了?
我是不是太闲了,问你们三遍,场景是这样的,我在一台VPS里面安装宝塔面板6.X,宝塔面板的软件商店有Docker管理器2.0这一个免费好用的小玩意.大鸟安装好Docker管理器2.0,然后在Docke ...
- NOIP模拟67
前言 从这一次到 71 都是多校联考了,尽管考的不咋样.. T1 数据恢复 解题思路 这个题真的是.. 先声明一个点,对于优先队列以及 set 都是在某个元素插入的时候进行比较,但是在之后如果修改比较 ...
- uniapp 复选框问题
之前在开发中遇到过使用colorui组件库的时候,uniapp自带的复选框和colorui的样式有冲突,以至于出现复选框中的勾号一直不显示,后来发现是因为colorui的样式问题 问题的根源: 解决方 ...