当前位置: 首页 > news >正文

linux内核tcp配置--断网后连接卡住

通过隐藏通信应用程序中的临时网络中断,TCP 可以在偶尔不可靠的网络上提供可靠的通信。在通知发件人任何问题之前,您的操作系统将多次重发丢失的消息。大多数 Linux 发行版默认将任何丢失的数据包重传 15 次。重新传输以指数方式回退,因此这 15 次重新传输需要 900 秒钟以上的时间才能完成。这意味着使用这种方法,Linux 需要花费几分钟的时间来检测网络分区或故障节点。 Windows 默认仅重传 5 次,相应的超时时间约为 6 秒。

Linux 默认设置允许通过可能遭受很长数据包丢失的网络进行通信,但是对于大多数 Elasticsearch 集群而言,此默认设置对于单个数据中心内的生产网络而言过于昂贵。高可用性集群必须能够快速检测节点故障,以便它们可以通过重新分配丢失的碎片,重新路由搜索以及可能选择一个新的主节点来迅速做出反应。因此,Linux 用户应减少最大 TCP 重传次数。

通过以 root 身份运行以下命令,可以将最大 TCP 重传次数减少到 5 。五次重发对应于大约六秒钟的超时。

sysctl -w net.ipv4.tcp_retries2=5


要永久设置此值,请更新 /etc/sysctl.conf 中的 net.ipv4.tcp_retries2 设置。

定义一个时间段,在这个时间段内,如果没有任何连接相关的活动,TCP 保活机制会开始作用,每隔一个时间间隔,发送一个「探测报文」,该探测报文包含的数据非常少,如果连续几个探测报文都没有得到响应,则认为当前的 TCP 连接已经死亡,系统内核将错误信息通知给上层应用程序。

在 Linux 内核可以有对应的参数可以设置保活时间、保活探测的次数、保活探测的时间间隔,以下都为默认值:

net.ipv4.tcp_keepalive_time=7200
net.ipv4.tcp_keepalive_intvl=75  
net.ipv4.tcp_keepalive_probes=9


tcp_keepalive_time=7200:表示保活时间是 7200 秒(2小时),也就 2 小时内如果没有任何连接相关的活动,则会启动保活机制

tcp_keepalive_intvl=75:表示每次检测间隔 75 秒;

tcp_keepalive_probes=9:表示检测 9 次无响应,认为对方是不可达的,从而中断本次的连接
 

禁用IPv6:

如果您的系统不需要使用IPv6,可以尝试禁用它,以减少网络相关的问题。在终端中执行以下命令,将ipv6.disable参数设置为1:

sysctl -w net.ipv6.conf.all.disable_ipv6=1

TCP 重传超时 |Elasticsearch 指南 [8.10] |弹性的

http://www.lryc.cn/news/216341.html

相关文章:

  • Apache Pulsar 在腾讯云上的最佳实践
  • VMware 虚拟机安装 CentOS 7
  • UnityAI——个体AI角色的操控行为脚本
  • ssh登录界面变成vim提示,进不去系统
  • 虹科示波器 | 汽车免拆检修 | 2012 款上汽大众帕萨特车 发动机偶尔无法起动
  • UE5.0.3版本 像素流送 Pixel Streaming
  • BetterDisplay Pro v1.4.15(显示器管理管理软件)
  • 蓝桥等考C++组别四级006
  • app开发之后需要做什么
  • 某汽车金融企业:搭建SDLC安全体系,打造智慧金融服务样本
  • iOS GCD(Grand Central Dispatch)
  • Cross-Entropy Loss(多分类损失函数)
  • TP858 3BSE018138R1 具有高性能CPU的工业PC技术
  • Observability:使用 OpenTelemetry 手动检测 .NET 应用程序
  • 生产事故:redis主从的坑
  • maven本地仓库有依赖包,还会远程下载的问题
  • 动作捕捉系统处理单点多点丢点问题
  • FIFO 位宽转换
  • 瑞明达:聚“追梦”之力,共圆“经济梦”
  • UE5数字孪生制作(一) - QGIS 学习笔记
  • STM32 使用HAL库,HAL_Delay()会卡死, 程序一直卡在 HAL_GetTick( ) 函数中(已解决)
  • Maven Repository使用
  • 智安网络|保护您的应用程序免受攻击:重要的安全强化措施
  • python3.8 use async getting invalid sysntax
  • Mac 解决 APP 快捷键冲突
  • mysql之事务
  • 组件化npm包打包和使用
  • Windows 内置Linux子系统的配置(From WSL1 to WSL2)
  • 2023-11-03 android app TextView 滚动,ScrollView 之外的另外一种方法
  • SAP 获取GOS附件清单及URL数据方法