Linux网络优化踩坑net.ipv4.tcp_tw_recycle
一、背景
来源于埋点上报服务,埋点上报服务是用户打开APP后点击、浏览、曝光等数据都会上报到埋点服务,收集数据后用来公司运营。
本次踩坑来源于监控到上课高峰期net.sockets.tcp.timewait达到系统设置的最大值5000,为了降低高峰期timewait数量,参考网上介绍可以调整三个参数来降低timewait。

二、修改参数
1、root用户修改参数vim /etc/sysctl.conf
参数1:修改timewait阈值,默认5000,建议最大不超过5万,太高会影响系统其它服务
net.ipv4.tcp_max_tw_buckets=30000
参数2:开启快速回收,这个参数有坑,遇到的问题是这个参数引起,在下面说明
net.ipv4.tcp_tw_recycle=1
参数3:允许将TIME-WAIT sockets重新用于新的TCP连接,默认关闭。我们系统上默认开启,并且稳定,所以不用修改
net.ipv4.tcp_tw_reuse=1
2、使修改生效
sysctl -p
三、修改后现象
1、java后端(在k8s容器中pod)上报偶发报连接超时,调用91次失败10次左右
org.apache.http.conn.ConnectTimeoutException: Connect to ***.com:443 [***.com/1.0.0.1] failed: connect timed out
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect
2、在阿里容器pod中访问埋点域名,偶发连接时间长,连接超时现象。十次有一次超时
测试方式 telnet ***.com 443
3、使用阿里云、腾讯云服务器(服务器有公网ip),访问正常
测试方式 telnet ***.com 443
4、为容器pod的宿主机增加eip(公网ip)后,访问正常
测试方式 telnet ***.com 443
网络路径:容器pod==》NAT网关==》外网埋点域名==》NLB==》ng集群
当前排查结论:容器pod需要经过公司NAT网关才能连接外网,使用带公网ip的云服务器都访问正常,怀疑是容器到网关有问题。
5、
参考文章:
1、https://blog.csdn.net/whatday/article/details/113427085
2、https://www.jianshu.com/p/4ffff35ef335
Linux网络优化踩坑net.ipv4.tcp_tw_recycle的更多相关文章
- 从U盘安装linux(前人踩坑后人乘凉)
今天踩了一个大坑,网上的教程从u盘安装linux少了一个关键步骤导致我挣扎了两个小时 废话不多说,开始需要准备一些东西 1.从官网下载一个Ubuntu 10.04的镜像 2.一个大于等于1G的支持启动 ...
- Linux使用踩坑记
Ubuntu安装坑: 1.对于新手第一次安装ubuntu,特殊情况会出现因为分辨率问题导致安装界面不全,无法进行下一步操作. 解决方案:使用alt+鼠标左键拖动屏幕Linux文件名乱码问题: 2.因为 ...
- linux上安装redis的踩坑过程
redis用处很广泛,我不再啰嗦了,我按照网上教程想在linux上安装下,开始了踩坑过程,网上买了一个linux centos7.3,滴滴云的,巨坑无比啊,不建议大家用这家的! redis 为4.0, ...
- .NetCore&Linux&Docker&Portainer踩坑历险记
最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...
- kali linux系统配置 避免踩坑
使用kali一个多月,重新安装kail也三次了,下面是安装完系统后,做如下系统配置,必须要做的配置,让自己以后不要踩坑. kail更新系统 1.添加更新源,前面已经介绍,不再多说 2获取更新数据,命令 ...
- Microsoft SQL Server on Linux 踩坑指南
微软用 SQL Server 在 2016 年的时候搞了一个大新闻,宣传 Microsoft ❤️ Linux 打得一众软粉措手不及.但是这还是好事情,Linux 上也有好用的 SQL Server ...
- Linux Mint安装Docker踩坑指南
我家的服务器选用的Linux Mint系统,最近安装Docker的时候踩了一些小坑,但是总体还算顺利. 我们都知道Linux Mint系统是基于Ubuntu的,说实话用起来感觉还是很不错的,安装Doc ...
- 网络优化之net.ipv4.tcp_tw_recycle参数
不要在linux上启用net.ipv4.tcp_tw_recycle参数 2015/07/27 CFC4N 本文为翻译英文BLOG<Coping with the TCP TIME-WAIT ...
- 不要在linux上启用net.ipv4.tcp_tw_recycle参数
不要在linux上启用net.ipv4.tcp_tw_recycle参数 发布于 2015/07/27 莿鸟栖草堂 本文为翻译英文BLOG<Coping with the TCP TIME-WA ...
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...
随机推荐
- Django之开发restful接口
django中的开发接口有两种模式FBV和CBV,分别是基于函数视图和基于类视图,详细的可以看看菜鸟教程的Django 视图 - FBV 与 CBV,由于本文的用户管理是一个restful风格的api ...
- vagrant搭建开发环境
一:我们为什么需要用这玩意 我们在开发中经常会面临的问题:环境不一致,有人用Mac有人用Windos还有几个用linux的,而我们的服务器都是linux. 在我本地是可以的啊,我测了都,没有问题啊,然 ...
- Java Class 文件中Method的存储
class文件是java编译后的文件类型.其代表一个类,其有专门的存储格式.其中会存放数据也会存放方法,而所谓的方法存放就是将方法中的调用都转换成java字节码指令.所方法调用从机器的角度看就是对于寄 ...
- ZCMU-1129
数学公式题罢了 学长 1.斯特灵公式: 2.对数公式(因为以10为底,得到的是10^x,所以最后向下取整加上1): #include<cstdio> #include<cmath&g ...
- 介绍 MSTest Runner - CLI, Visual Studio 等更多
介绍 MSTest Runner - CLI, Visual Studio 等更多 https://devblogs.microsoft.com/dotnet/introducing-ms-test- ...
- 理解 ASP.NET Core:Cookie 认证
理解 ASP.NET Core:Cookie 认证 ASP.NET Core 内置提供了基于 Cookie 的认证支持.在使用 Cookie 验证的时候,相关的三要素: 认证模式名称:CookieAu ...
- postman -- 把上一接口的响应值作为下一接口的入参
一.方法
- Docker非root用户修改/etc/hosts文件
本文会讲解在Docker容器环境下,非root用户如何编辑修改/etc/hosts文件. 1.背景和需求描述 环境:Docker 运行用户:非root用户,如普通用户1001 需求:应用运行在容器内, ...
- Spring Boot 2.4 中文
Spring Boot 2.4 中文 https://runebook.dev/zh-CN/docs/spring_boot/spring-boot-features
- Qt开发经验小技巧231-235
关于c++中继承多态virtual和override的几点总结. 子类可以直接使用基类中的protected下的变量和函数. 基类函数没加virtual,子类有相同函数,实现的是覆盖.用基类指针调用时 ...