一、背景

来源于埋点上报服务,埋点上报服务是用户打开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的更多相关文章

  1. 从U盘安装linux(前人踩坑后人乘凉)

    今天踩了一个大坑,网上的教程从u盘安装linux少了一个关键步骤导致我挣扎了两个小时 废话不多说,开始需要准备一些东西 1.从官网下载一个Ubuntu 10.04的镜像 2.一个大于等于1G的支持启动 ...

  2. Linux使用踩坑记

    Ubuntu安装坑: 1.对于新手第一次安装ubuntu,特殊情况会出现因为分辨率问题导致安装界面不全,无法进行下一步操作. 解决方案:使用alt+鼠标左键拖动屏幕Linux文件名乱码问题: 2.因为 ...

  3. linux上安装redis的踩坑过程

    redis用处很广泛,我不再啰嗦了,我按照网上教程想在linux上安装下,开始了踩坑过程,网上买了一个linux centos7.3,滴滴云的,巨坑无比啊,不建议大家用这家的! redis 为4.0, ...

  4. .NetCore&Linux&Docker&Portainer踩坑历险记

    最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...

  5. kali linux系统配置 避免踩坑

    使用kali一个多月,重新安装kail也三次了,下面是安装完系统后,做如下系统配置,必须要做的配置,让自己以后不要踩坑. kail更新系统 1.添加更新源,前面已经介绍,不再多说 2获取更新数据,命令 ...

  6. Microsoft SQL Server on Linux 踩坑指南

    微软用 SQL Server 在 2016 年的时候搞了一个大新闻,宣传 Microsoft ❤️ Linux 打得一众软粉措手不及.但是这还是好事情,Linux 上也有好用的 SQL Server ...

  7. Linux Mint安装Docker踩坑指南

    我家的服务器选用的Linux Mint系统,最近安装Docker的时候踩了一些小坑,但是总体还算顺利. 我们都知道Linux Mint系统是基于Ubuntu的,说实话用起来感觉还是很不错的,安装Doc ...

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

    不要在linux上启用net.ipv4.tcp_tw_recycle参数  2015/07/27  CFC4N 本文为翻译英文BLOG<Coping with the TCP TIME-WAIT ...

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

    不要在linux上启用net.ipv4.tcp_tw_recycle参数 发布于 2015/07/27 莿鸟栖草堂 本文为翻译英文BLOG<Coping with the TCP TIME-WA ...

  10. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...

随机推荐

  1. Displaying XML in a Swing JTree

    Overview It seems obvious enough: You have an XML document or fragment. XML is hierarchical. A Swing ...

  2. 解读vue的webpack.base.conf.js配置

    'use strict' // 引入nodejs路径模块 const path = require('path') // 引入utils工具模块,utils主要用来处理css-loader和vue-s ...

  3. uniapp 画布

    1.前言 uniapp中的canvas与HTML中的canvas用法并不同,他的使用文档请参考微信小程序画布 2.基本使用 1.准备canvas容器,并为其设置canvas-id和宽高(为了兼容H5, ...

  4. 物联网CC2530按键单双击分别控制两灯

    (1)确定思路单击和双击的效果分别是怎样的(此文章采用简单的延时函数不涉及中断).首先可以定义一个普通延时delay和一个标志位count变量,这里需有个延时阈值咱们直接可以宏定义B值(这里需要注意宏 ...

  5. uniapp权限判断

    写法如下 // 检查是否有写入外部存储的权限 function writeExternalStoragePermission() { return new Promise((resolve, reje ...

  6. 【金TECH频道】从第一性原理出发,数字原生银行原来可以这样做

    ​ "第一性原理",是最近商界特别流行的一个词. 这个来自于古希腊先贤的古老词汇,本意在于更多聚焦于事物本质,即是用物理学的角度来看待世界,一层层拨开事物表象,看到里面的本质,再从 ...

  7. kubernetes更改nodePort模式下的默认端口范围

    使用nodePort模式,官方默认范围为30000-32767,详见Service官方文档. NodePort 类型如果将 type 字段设置为 NodePort,则 Kubernetes 控制平面将 ...

  8. set -euxo pipefail

    有些开发人员会用Bash来实现很复杂的功能,就像使用别的高级语言一样.他可能觉得自己很牛逼但其他人早就想锤爆他了,Bash的可读性和可维护性远远低于任何高级语言.更要命的是,Bash并没有方便的调试工 ...

  9. 【转载】Spring Cloud Gateway-过滤器工厂详解(GatewayFilter Factories)

    http://www.imooc.com/article/290816 TIPS 本文基于 Spring Cloud Greenwich SR2 ,理论支持 Spring Cloud Greenwic ...

  10. Qt编写物联网管理平台33-设备面板

    一.前言 设备面板展示数据,相对于表格展示,可能在一个页面中能够展示的设备数据量少一些,但是有些用户和场景,又需要这种面板的形式,可能更生动形象一些.尤其是经过这么些年的社会的毒打,我的原则是:用户是 ...