为了解决TIME_WAIT问题的参数优化
提到TIME_WAIT就不得不提MSL:即Maximum Segment Lifetime,最大报文生存时间,和TTL相似,TTL是IP头中的,是一个设置的初始值,每过一个网络节点-1,0的时候数据报被丢弃。2MSL是为了解决发起连接关闭方回复最后一个fin 的ack,为避免对方ack 收不到、重发的或还在中间路由上的fin 把新连接给干掉了

  1. tw_reuse,tw_recycle 必须在客户端和服务端timestamps 开启时才管用(默认打开)
  2. tw_reuse 只对客户端起作用,开启后客户端在1s内回收
  3. tw_recycle 对客户端和服务器同时起作用

对于客户端

  1. 作为客户端因为有端口65535问题,TIME_OUT过多直接影响处理能力,打开tw_reuse 即可解决,不建议同时打开tw_recycle,帮助不大。
  2. tw_reuse 帮助客户端1s完成连接回收,基本可实现单机6w/s请求,需要再高就增加IP数量吧。
  3. 如果内网压测场景,且客户端不需要接收连接,同时tw_recycle 会有一点点好处。
  4. 业务上也可以设计由服务端主动关闭连接

对于服务端

  1. 打开tw_reuse无效
  2. 线上环境 tw_recycle 不要打开 因为一般的服务器、客户端都在NAT之后公网服务打开就可能造成部分连接失败,内网的话到时可以视情况打开;像我所在公司对外服务都放在负载后面,负载会把timestamp 都给清空,好吧,就算你打开也不起作用。
  3. 服务器TIME_WAIT 高怎么办
    不像客户端有端口限制,处理大量TIME_WAIT Linux已经优化很好了,每个处于TIME_WAIT 状态下连接内存消耗很少,而且也能通过tcp_max_tw_buckets =100000 解决(这个值根据TIME_WAIT数量定),现代机器一般也不缺这点内存。
#客户端
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse=1          #系统默认0。当服务器当为客户端时有效(如反向代理访问后端),开启后客户端在1s内回收
net.ipv4.tcp_tw_recycle=0       #系统默认0。可关闭,但要调大tcp_max_tw_buckets,使用内存来支撑#服务器端
net.ipv4.tcp_timestamps = 1      #系统默认1。会在tcp包头部记录时间戳。
net.ipv4.tcp_tw_recycle=0        #系统默认0。可关闭,但要调大tcp_max_tw_buckets,使用内存来支撑
net.ipv4.tcp_max_tw_buckets=655350

tcp_tw_reuse、tcp_tw_recycle和tcp_timestamps相关推荐

  1. tcp_tw_recycle和tcp_timestamps导致connect失败问题

    近来线上陆续出现了一些connect失败的问题,经过分析试验,最终确认和 proc参数tcp_tw_recycle/tcp_timestamps相关: 1. 现象 第一个现象 模块A通过NAT网关访问 ...

  2. Linux同时开启tcp_tw_recycle和tcp_timestamps导致TCP syn有时不响应故障排查

    问题描述 前几天,同事反馈从公司连接线上一台服务器有时候会失败,经过抓包发现,TCP握手过程失败.查了相关资料,发现是跟net.ipv4.tcp_tw_recycle和net.ipv4.tcp_tim ...

  3. tcp_timestamps tcp_tw_recycle引起的服务器连接不上问题

    最近一个非常奇怪的问题,多台手机客户端利用公司wifi连接一台服务器,但是频繁出现连接不上情况,而且一台能连接上,另一台就会断开.断开的时候再尝试连接,但是没有apache跟tomcat的任何访问记录 ...

  4. linux系统参数之ip_local_port_range、tcp_max_tw_buckets、tcp_tw_reuse

    一,linux TIME_WAIT 相关参数 1,/proc/sys/net/ipv4/ip_local_port_range:端口范围,不要超过1024到65535,1024以下系统使用,65535 ...

  5. 网络优化之net.ipv4.tcp_tw_recycle参数

    本文为翻译英文BLOG<Coping with the TCP TIME-WAIT state on busy Linux servers>,(http://vincent.bernat. ...

  6. 不要在linux上启用net.ipv4.tcp_tw_recycle参数

    本文为翻译英文BLOG<Coping with the TCP TIME-WAIT state on busy Linux servers>,但并非完整的翻译,译者CFC4N对原文理解后, ...

  7. NAT环境无法访问云端的深层次分析

    这是一次我维护runningdoctor时候遇到的问题 现象: 1.用户无法打开web.runningdoctor.cn 2.监控状态无异常.无报警 3.tracert结果无异常.丢包率正常 4.用户 ...

  8. 万字长文 | 23 个问题 TCP 疑难杂症全解析

    每个时代,都不会亏待会学习的人. 在进入今天主题之前我先抛几个问题,这篇文章一共提出 23 个问题. TCP 握手一定是三次?TCP 挥手一定是四次? 为什么要有快速重传,超时重传不够用?为什么要有 ...

  9. 系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT

    https://my.oschina.net/fdhay/blog/638631 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 2016-02-18 大房 大房说 本文是我将最 ...

最新文章

  1. 音频处理中频域转时域的恢复
  2. Microsoft月度中文速递
  3. vue打包后css路径_Vue打包后访问静态资源路径问题
  4. 车牌识别python实现ubuntu_python利用百度云接口实现车牌识别
  5. 直播丨BMMeetup第2期:大模型计算加速技术,2场特邀和7位青年学者技术报告联袂上演...
  6. C#-using与添加引用的关系
  7. matlab bdir 排序,命令行 - 如何获取按文件夹名称排序的子文件夹及其文件列表
  8. NetCore控制台实现自定义CommandLine功能
  9. 尝试搭建Apache+Tomcat负载均衡
  10. 博客目录 Blog directory
  11. 大电流场效应管500a_不可不知的电子工程常用的6大电子元器件,了解一下!
  12. 飞鱼科技2019笔试题
  13. 如何转换html转化mp4,格式互转技巧:webm格式怎么转换mp4?
  14. 课程设计-工资管理系统
  15. 如何进行自学软件测试?
  16. Hutool常用工具
  17. 求高手请进,帮我分析这种情况是什么原因
  18. 程序员必备的10个B站优质UP主!
  19. scipy--统计检验
  20. 华为手机上html怎么打开,华为手机root权限怎么开启?详细的步骤以及图文教程...

热门文章

  1. 多系统单点登录(sso)设计
  2. 凸轮表(ECAM)的本质-运动控制轨迹规划(线性插值、3次样条插值、5次样条插值)
  3. iredmail 设置
  4. 微信小程序下拉刷新不执行 enablePullDownRefresh
  5. 微信小程序头脑风暴2答题辅助
  6. 步进电机定位不准的原因及处理方法
  7. 多目标跟踪卡尔曼滤波和匈牙利算法
  8. 西门子Smart200 PLC恒压供水程序
  9. webinspect导出报告选择项
  10. 数据挖掘:概念与技术 第一章