有客户报障,说是连接超时。。。然后查看docker里有队列溢出

netstat -s | grep overflowed

通过抓取队列溢出的大小,发现每次报障时,实例的队列溢出数都会突增。

队列溢出是查看现有连接数是否大于backlog,如果大于就丢弃,并overflow数+1,backlog数是有配置的backlog和系统的somaxconn决定的,ruguo backlog值大于somaxconn,则backlog设置为somaxconn,否则取配置的backlog。

1.redis的配置文件有tcp-backlog,默认的是511

tcp服务里面默认有两个队列,一个是tcp-backlog,用于存放未连接队列,另外一个是somaxconn,用于存放已连接队列。

在完成tcp三次握手之前,首先进入未连接队列,完成tcp三次握手之后正式建立连接,进入已连接队列。因为redis是单进程的,如果主进程出现慢查询的话,会导致已连接队列堆满,并且新accept的连接不能被处理,不能进入到已连接队列,也导致未连接队列堆满,在服务器看到处于未连接队列中的连接状态为SYN_RECV。 新进来的客户端连接将会一直处于SYN_SENT状态等待服务器的ACK应答,最终导致连接超时。

关于TCP三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

处理方法:将配置tcp-backlog设和系统somaxconn设置成8192

原文:https://www.cnblogs.com/chenyang920/p/13532705.html

backlog配置_redis的tcp-backlog配置相关推荐

  1. redis连接数合理配置_redis如何进行合理配置,这10种配置参数你必须知道

    redis参数如何配置 redis数据库的使用,关键一步是对redis进行合理的参数配置,redis的配置文件都在安装目录下的redis.conf文件中进行相关参数配置. redis参数的配置可以通过 ...

  2. TCP backlog的解读

    TCP backlog参数 文章目录 TCP backlog参数 介绍 底层 syns queue accept queue 应用层 解决方案 介绍 在实际生产环境中使用netty的过程中,遇到了一个 ...

  3. backlog配置_redis tcp-backlog配置

    在redis2.8版本中有一个tcp-backlog配置, 说明如下: # TCP listen() backlog. # # In high requests-per-second environm ...

  4. Redis报错解决The TCP backlog setting of 511 cannot be enforced和This will create latency and memory usage

    在启动Redis的时候报错如下: 16426:M 04 May 10:30:43.721 # WARNING: The TCP backlog setting of 511 cannot be enf ...

  5. 在Solaris系统中,查看tcp/ip配置

    在Solaris系统中,修改tcp/ip配置是比较繁琐的事情 本机机器名                                                    /etc/hostnam ...

  6. 【翻译】TCP backlog在Linux中的工作原理

    原文How TCP backlog works in Linux 水平有限,难免有错,欢迎指出! 以下为翻译: 当应用程序通过系统调用listen将一个套接字(socket)置为LISTEN状态时,需 ...

  7. 2020-04-04 接收队列--配置所有的TCP数据流定向到接收队列2中

    ethtool还可根据流类型配置接收队列,如下配置所有的TCP数据流添加到接收队列2中.对于一台web服务器而言,可将所有目的端口为80的数据流导入到某个队列中,并且将其它数据流导入其它接收队列,以保 ...

  8. EBYTE E103-W02 WIFI模块配置总结(TCP+UDP+HTTP+云透传)

    目录 1.硬件配置 1.1 原理图 1.2 管脚配置 2.AT指令集 3.AP模式配置 3.1AP介绍 3.2 AP配置TCP通信 3.3 AP配置UDP通信 4.STA模式配置 4.1STA介绍 4 ...

  9. 网络命令以及如何使用Ipconfig.exe工具查看TCP/IP配置

    网络命令: 一.Ping命令 ping是个使用频率极高的实用程序,主要用于确定网络的连通性. 这对确定网络是否正确连接,以及网络连接的状况十分有用.简单的说,ping就是一个测试程序,如果ping运行 ...

最新文章

  1. linux shell 报错 Syntax error: Bad for loop variable
  2. Linux定时备份数据到百度云盘
  3. 【转】Epoll模型
  4. java第三章:流程控制语句
  5. pov-inc_yourself劳自己-懒惰的设计师的POV和一些Figma
  6. A1078. 逆序对个数
  7. 【医疗】疫情下的医院信息化短板如何补足?
  8. python输出文本内容_python 打印文件里的内容
  9. python安装和更新pip
  10. 理解 static 关键字
  11. iOS 9检测QQ、微信是否安装
  12. 初次体验.net Ajax无刷新技术
  13. 阅读笔记——《R数据可视化手册》肖楠等;主要ggplot2
  14. NOD32 AntiVirus v2.70.16杀毒软件
  15. Lan Xiang's Square nyoj 1099(已经四边形四点坐标 如何判断正方形)
  16. python与开源gis空间分析_Python 与开源GIS —数据处理、空间分析与地图制图
  17. 取消迅雷接管浏览器下载
  18. 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布、连续分布(正态分布)、大数定理、中心极限定理、贝叶斯理论
  19. 计算机显示无法打开打印机添加,win10电脑提示无法打开添加打印机怎么办
  20. java xml格式化_使用java将xml格式化

热门文章

  1. java nan 和 infinity,Float中的那些常量 Infinity、NaN
  2. 软件测试工程师工作有多累?怎么入门学习软件测试呢?
  3. 打印机打印有些地方有点淡
  4. 赛码约德尔(志勋)测试
  5. 微博开放平台接口整理系列--短链转长链
  6. wikioi1017 乘积最大
  7. 论文修改---参考文献修改
  8. 轻松实现微信小程序上传多文件/图片到腾讯云对象存储COS(免费额度)
  9. NYOJ 740 “炫舞家”ST
  10. 常用u-boot命令详解(全) 2