Connection reset by peer报错解决

server/2024/9/24 9:19:48/
e class="baidu_pl">
e_content" class="article_content clearfix">
ent_views" class="htmledit_views">

问题描述

e>e class="language-bash">Connection reset by peer e>e>

es服务时不时会出现以上报错,经过一段时间排查,最终确定了报错原因

问题分析
1、TCP Keepalive: TCP Keepalive 是一种用于检测死连接(即那些已经没有数据传输但仍然在连接状态中的连接)的机制。ef="/FuWuQi.html" title=服务器>服务器和客户端可以通过发送探测包来检查对方是否仍然响应。在您的场景中,ef="/FuWuQi.html" title=服务器>服务器的 TCP Keepalive 时间设置为 7200 秒(即2小时),这意味着ef="/FuWuQi.html" title=服务器>服务器会在这个时间间隔后才开始发送 Keepalive 探测包。
2、IPVS TCP表项超时: IPVS 是 Linux 下的一个强大的基于内核的虚拟ef="/FuWuQi.html" title=服务器>服务器,用于实现负载均衡。在 IPVS 中,TCP 表项的超时时间被设置为 900 秒(即15分钟)。这意味着如果在一个 TCP 连接中,在 900 秒内没有任何数据交换,IPVS 可能会认为这个连接是空闲的,并可能从其表项中删除该连接的信息。

当 TCP Keepalive 探测包(在2小时后发送)到达一个已经被 IPVS 删除或标记为不再活跃的连接时,会导致“Connection reset by peer”错误,因为ef="/FuWuQi.html" title=服务器>服务器端已经认为连接仍然有效,而实际上在负载均衡器层面该连接已经被断开或标记为不再活跃。 

解决方案 

方法一

调整 TCP Keepalive 时间
可以将tcp keepalive时间调短一些,确保在ipvs超时时间之内能够发送keep alive探测包

临时修改
sudo sysctl -w net.ipv4.tcp_keepalive_time=600

永久修改

在/etc/sysctl.conf路径下加入以下参数

net.ipv4.tcp_keepalive_time=600


方法二 调整 IPVS TCP 表项超时: 如果可能的话,尝试调整 IPVS 的 TCP 超时设置以匹配或超过 TCP Keepalive 时间。但请注意,这可能需要修改 IPVS 的配置,这取决于您的具体环境和配置方式。

方法三 应用层心跳: 除了 TCP Keepalive 之外,您还可以考虑在应用层实现心跳机制,以更频繁地检查连接的活跃状态。这通常通过在客户端和ef="/FuWuQi.html" title=服务器>服务器之间定期发送小的数据包来实现。
 

eeSkill">

http://www.ppmy.cn/server/101798.html

相关文章

浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比

在我们的很多项目中都遇到过用户的咨询:TSINGSEE青犀EasyCVR视频汇聚平台与海康平台的区别在哪里?确实,在安防视频监控领域,EasyCVR视频汇聚平台与海康威视平台是两个备受关注的选择。它们各自具有独特的功能和优势,适…

国内首个支持国产化信创的开源云原生平台

国产化信创是指中国本土信息技术和创新产业的发展和推广。随着各种形势的复杂变化,推动国产化和信创已成为信息产业发展的重要方向。在这一背景下,国内的技术企业和开发者们纷纷投入到开源国产化和自主创新的浪潮中,力图摆脱对国外技术和服务…

gcc stm32f103zet6 点灯

平台:正点原子战舰开发板 根据电路图,设置为LED设推挽输出;按键采用KEY0,KEY1,设置为输入上拉。 配置好引脚后,生成代码: 接着在生成的代码目录中生成hex文件,有两种方式Makefile…

Python知识点:如何使用Azure SDK for Python进行Azure服务操作

使用 Azure SDK for Python 进行 Azure 服务操作可以简化对 Azure 云资源的管理和操作。Azure SDK 提供了丰富的 API 来访问 Azure 的各种服务,包括虚拟机、存储、数据库等。以下是使用 Azure SDK for Python 的基本步骤,包括设置、操作和一些常见服务的…

13 Listbox 组件

13 Listbox 组件 Tkinter 的 Listbox 组件是一个用于显示列表项的控件,用户可以从中选择一个或多个项目。以下是对 Listbox 组件的详细说明和一个使用案例。 Listbox 组件属性 基本属性 width: 控件的宽度,通常以字符数为单位。height: 控件的高度&a…

PHP移动端商城分销全平台全端同步使用

📱【掌中购物新纪元:探索移动端购物商城系统的无限魅力】🛍️ 🚀 随时随地,购物自由新体验 在这个快节奏的时代,移动端购物商城系统彻底颠覆了传统购物方式,让消费者享受到了前所未有的便捷与…

ThinkPHP的SQL注入漏洞学习

目录 漏洞环境 漏洞概要 函数学习 call_user_func函数 mplode函数 漏洞分析 漏洞修复 攻击总结 漏洞环境 漏洞存在于 Builder 类的 parseData 方法中。由于程序没有对数据进行很好的过滤,将数据拼接进 SQL 语句,导致 SQL注入漏洞 的产生。 漏洞…

报错:Can‘t find Python executable “python“, you can set the PYTHON env variable

将项目导入vscode,执行npm install命令后,报错了,报错的信息是node-sass安装失败,同时提示需要python环境的错误信息,这是因为安装node-sass失败了,而node-sass依赖于Python环境。 1.报错:Cant find Python…