MySQL数据库机器配置的3个网络参数
简介:程序上 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设计目的是为了记录数据包的发送时间,过程如下
- 发送方在发送数据包时,在TCP协议中的TSopt选项记录当前的发送的时间戳TSval中。
- 接收方收到数据包,进行拆封并把发送的时间戳TSval记录在TSecr返回给发送方一个ack。
- 发送包收接收方的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个网络参数相关推荐
- mysql windows 管道连接,科技常识:Windows Server 2016 MySQL数据库安装配置详细安装教程...
今天小编跟大家讲解下有关Windows Server 2016 MySQL数据库安装配置详细安装教程 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Windows Server 2016 ...
- 安装mysql 环境变量_win10系统安装mysql数据库后配置环境变量的图文教程
安装mysql数据库后配置环境变量的图文教程: 1.同时按下键盘组合键Win+i,打开设置窗口,点击"System",进入系统设置: 2.在系统设置窗口中选择"About ...
- linux的mysql主主_Linux下指定mysql数据库数据配置主主同步的实例
一. 概念:① 数据库同步 (主从同步 --- 主数据库写的同时 往从服务器写数据) ② 数据库同步 (主主同步 --- 两台数据库服务器互相写数据) 二. 举例 主主数据库同步服务器配置 数据库 ...
- mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决
本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 现象: 阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨 ...
- ubuntu14.04使用MySQL数据库安装配置Hive 1.2.1
ubuntu14.04使用MySQL数据库安装配置Hive 1.2.1 一.准备Mysql已经安装好.本人装的是navicat,图形化界面. 并在本地用root用户建立了test数据库 二 ...
- 《大型数据库技术》MySQL数据库安装配置及基础使用
文章目录 1.下载安装MySQL 1.1 搜索MySQL下载页面 1.2 查看各种MySQL版本 1.3 安装配置MySQL 2.数据库基本操作 2.1 创建数据库 2.2 创建关系表 2.3 插入数 ...
- MySql数据库主从配置详细教程
MySql数据库主从配置详细教程 本文将讲解mysql数据库的主从配置方法.mysql数据库进行主从配置后,可以实现数据库的备份.同时应用也可以实现读写分离,提高应用的并发量. 1.主从原理 主从原理 ...
- 转载 mysql 数据库优化配置实例
MySQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-aut ...
- [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识
从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...
最新文章
- linux 下 select 函数的用法
- os.path.join的妙用
- mysql有3个共同好友_共同好友mysql
- 机器学习-Logistic回归原理及实战
- 如何修改elementUI里面Dialog组件标题的样式
- vue标签旋转_vue.js编写移动端页面,检测旋转屏幕,横竖屏。
- 计算机系班级海报,系部动态 | 电子系“五彩班栏”班级海报评比
- 用了10年海尔家电,青岛一音乐老师为海尔写了1首歌
- 安装nvm下载node,npm以及配置的全过程。解析npm下载包使用 -v指令 发现下载的包不存在的原因。
- 2020第十一届蓝桥杯省赛python真题详解
- html5中Canvas API
- Excel 填充间格空白单元格与最上临近非空单元格值相同
- 计算机网络:从浅尝辄止到融汇贯通(近两万字长文)
- 【EMNLP2020】忒修斯之船启发下的知识蒸馏新思路 - 微软研究院
- Right-BICEP测试四则运算2
- java语言就业方向_学习java以后的就业方向有哪些-百度经验
- jQuery轮播图(详细注释)
- 为什么程序员流动性大_为健康“流动”
- Windows服务器更改远程端口3389
- 小白终是踏上了这条不归路----小文的mysql学习笔记(4)----常见的基本函数
热门文章
- CSS基础(14)- 更多的样式
- 安卓手机”应用未安装“解决办法
- 湖北省重点研发计划项目(大健康领域支持地方专项)奖励支持政策,2022年申报条件及流程
- 评:从决赛能看到什么?我个人认为.五年内周宇是五人的冠军!!
- .bin 文件用excel文件打开_如何用最少的python代码合并多个Excel文件
- echarts基础语法
- 小白初写Spring核心容器功能
- 测试平台开发:(14)测试用例管理功能设计
- 编译原理8:递归下降分析器、扩充巴斯克范式、JavaCC
- OPM Demo Flow