简介:程序上 k8s后,数据库服务加上这些参数,不然连接会有问题。我们来探究下原因:

首先,看下这3个参数的意义:

1、net.ipv4.tcp_tw_recycle=0

为1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。

2、net.ipv4.tcp_tw_reuse=0

为1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

在关闭net.ipv4.tcp_tw_reuse的情况下,是不能重复利用TIME_WAIT的,需要等待TIME_WAIT自己关闭,并且TIME_WAIT的时间不能通过参数进行配置,如果修改的话,需要自己编译内核。

3、net.ipv4.tcp_timestamps=0

tcp_timestamps设计目的是为了记录数据包的发送时间,过程如下

  1. 发送方在发送数据包时,在TCP协议中的TSopt选项记录当前的发送的时间戳TSval中。
  2. 接收方收到数据包,进行拆封并把发送的时间戳TSval记录在TSecr返回给发送方一个ack。
  3. 发送包收接收方的ack包,用当前时间戳 - ack中的TSecr时间戳就可以得到精确的RTT。

服务端

1、针对参数tcp_tw_recycle分析:

在服务端,不要启用net.ipv4.tcp_tw_recycle,除非你能确保你的服务器网络环境不是NAT。

2、针对参数tcp_tw_reuse分析:

在服务端,不要启用net.ipv4.tcp_tw_reuse,除非你能确保你的服务器网络环境不是NAT。

3、针对参数tcp_timestamps分析:

今天发生了一个奇怪的现象,在家里始终打开公司的网站打开不了,从ping到dig域名,然后curl,都是没有问题的,但是就是打不开,最好没有办法只能抓包了,从抓包的然后来看就是syn-ack没有返回,然后就看到底是因为什么原因:

原因就是net.ipv4.tcp_timestamps=1,启用了时间戳,原理如下:
问题出在了 tcp三次握手,如果有一个用户的时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp的3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。

解决方法:net.ipv4.tcp_timestamps = 0

总结:

1、开启net.ipv4.tcp_tw_reuse可以复用TIME_WAIT的连接,但是要求服务器与客户端都必须开启net.ipv4.tcp_timestamps

为了保证安全性,假如说没有net.ipv4.tcp_timestamps,当连接被复用后,如果这时候有延迟或者重发的数据包到达,新的连接就无法判断数据包属于复用前的连接还是复用后的连接了。
​2、tcp_tw_reuse 服务器端应该不会有大量主动连接的动作(或许会连接DB等,但一般也是长连接)。因此这个选项对于TCP服务器来说,基本上是无用的,没必要打开。

参考:

以讹传讹的“tcp_tw_reuse” - 腾讯云开发者社区-腾讯云

运维中tcp_tw_recycle net.ipv4.tcp_timestamps引发的坑 - 知乎

net.ipv4.tcp_tw_reuse是干嘛的?_三天饿九顿的萌新的博客-CSDN博客_net.ipv4.tcp_tw_reuse

MySQL数据库机器配置的3个网络参数相关推荐

  1. mysql windows 管道连接,科技常识:Windows Server 2016 MySQL数据库安装配置详细安装教程...

    今天小编跟大家讲解下有关Windows Server 2016 MySQL数据库安装配置详细安装教程 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Windows Server 2016 ...

  2. 安装mysql 环境变量_win10系统安装mysql数据库后配置环境变量的图文教程

    安装mysql数据库后配置环境变量的图文教程: 1.同时按下键盘组合键Win+i,打开设置窗口,点击"System",进入系统设置: 2.在系统设置窗口中选择"About ...

  3. linux的mysql主主_Linux下指定mysql数据库数据配置主主同步的实例

    一. 概念:① 数据库同步  (主从同步 --- 主数据库写的同时 往从服务器写数据) ② 数据库同步  (主主同步 --- 两台数据库服务器互相写数据) 二. 举例 主主数据库同步服务器配置 数据库 ...

  4. mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

    本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 现象: 阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨 ...

  5. ubuntu14.04使用MySQL数据库安装配置Hive 1.2.1

    ubuntu14.04使用MySQL数据库安装配置Hive 1.2.1 一.准备Mysql已经安装好.本人装的是navicat,图形化界面.     并在本地用root用户建立了test数据库   二 ...

  6. 《大型数据库技术》MySQL数据库安装配置及基础使用

    文章目录 1.下载安装MySQL 1.1 搜索MySQL下载页面 1.2 查看各种MySQL版本 1.3 安装配置MySQL 2.数据库基本操作 2.1 创建数据库 2.2 创建关系表 2.3 插入数 ...

  7. MySql数据库主从配置详细教程

    MySql数据库主从配置详细教程 本文将讲解mysql数据库的主从配置方法.mysql数据库进行主从配置后,可以实现数据库的备份.同时应用也可以实现读写分离,提高应用的并发量. 1.主从原理 主从原理 ...

  8. 转载 mysql 数据库优化配置实例

    MySQL服务器my.cnf配置文档详解  硬件:内存16G [client]  port = 3306  socket = /data/3306/mysql.sock [mysql]  no-aut ...

  9. [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

最新文章

  1. linux 下 select 函数的用法
  2. os.path.join的妙用
  3. mysql有3个共同好友_共同好友mysql
  4. 机器学习-Logistic回归原理及实战
  5. 如何修改elementUI里面Dialog组件标题的样式
  6. vue标签旋转_vue.js编写移动端页面,检测旋转屏幕,横竖屏。
  7. 计算机系班级海报,系部动态 | 电子系“五彩班栏”班级海报评比
  8. 用了10年海尔家电,青岛一音乐老师为海尔写了1首歌
  9. 安装nvm下载node,npm以及配置的全过程。解析npm下载包使用 -v指令 发现下载的包不存在的原因。
  10. 2020第十一届蓝桥杯省赛python真题详解
  11. html5中Canvas API
  12. Excel 填充间格空白单元格与最上临近非空单元格值相同
  13. 计算机网络:从浅尝辄止到融汇贯通(近两万字长文)
  14. 【EMNLP2020】忒修斯之船启发下的知识蒸馏新思路 - 微软研究院
  15. Right-BICEP测试四则运算2
  16. java语言就业方向_学习java以后的就业方向有哪些-百度经验
  17. jQuery轮播图(详细注释)
  18. 为什么程序员流动性大_为健康“流动”
  19. Windows服务器更改远程端口3389
  20. 小白终是踏上了这条不归路----小文的mysql学习笔记(4)----常见的基本函数

热门文章

  1. CSS基础(14)- 更多的样式
  2. 安卓手机”应用未安装“解决办法
  3. 湖北省重点研发计划项目(大健康领域支持地方专项)奖励支持政策,2022年申报条件及流程
  4. 评:从决赛能看到什么?我个人认为.五年内周宇是五人的冠军!!
  5. .bin 文件用excel文件打开_如何用最少的python代码合并多个Excel文件
  6. echarts基础语法
  7. 小白初写Spring核心容器功能
  8. 测试平台开发:(14)测试用例管理功能设计
  9. 编译原理8:递归下降分析器、扩充巴斯克范式、JavaCC
  10. OPM Demo Flow