cat /proc/sys/net/ipv4/tcp_max_syn_backlog
#syn队列最大长度
netstat -ntl | grep SYN_RECV | wc -l
#syn队列当前长度
#要想增大半连接队列,我们不能只单纯增大 tcp_max_syn_backlog 的值,还需一同增大 somaxconn 和 backlog,也就是增大全连接队列。否则,只单纯增大 tcp_max_syn_backlog 是无效的。 #如果syn队列满了,可以开启 tcp_syncookies 功能
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#减少 SYN+ACK 重传次数
echo 2 > /proc/sys/net/ipv4/tcp_synack_retries
#重试2次 #accept
ss -antl
#其中Send-Q就是队列最大长度,Recv-Q是当前队列积压数量,当队列满后,linux默认会丢弃连接 cat /proc/sys/net/ipv4/tcp_abort_on_overflow
#0 :如果全连接队列满了,那么 server 扔掉 client 发过来的 ack ;
#1 :如果全连接队列满了,server 发送一个 reset 包给 client,表示废掉这个握手过程和这个连接;
#如果要想知道客户端连接不上服务端,是不是服务端 TCP 全连接队列满的原因,那么可以把 tcp_abort_on_overflow 设置为 1,这时如果在客户端异常中可以看到很多 connection reset by peer 的错误,那么就可以证明是由于服务端 TCP 全连接队列溢出的问题。
#通常情况下,应当把 tcp_abort_on_overflow 设置为 0,因为这样更有利于应对突发流量。
#当 TCP 全连接队列满导致服务器丢掉了 ACK,与此同时,客户端的连接状态却是 ESTABLISHED,进程就在建立好的连接上发送请求。只要服务器没有为请求回复 ACK,请求就会被多次重发。如果服务器上的进程只是短暂的繁忙造成 accept 队列满,那么当 TCP 全连接队列有空位时,再次接收到的请求报文由于含有 ACK,仍然会触发服务器端成功建立连接。
#所以,tcp_abort_on_overflow 设为 0 可以提高连接建立的成功率,只有你非常肯定 TCP 全连接队列会长期溢出时,才能设置为 1 以尽快通知客户端。 #TCP 全连接队列的最大值取决于 somaxconn 和 backlog 之间的最小值,也就是 min(somaxconn, backlog)
cat /proc/sys/net/core/somaxconn
#somaxconn 是 Linux 内核的参数,默认值是 128,可以通过 /proc/sys/net/core/somaxconn 来设置其值;
echo 5000 > /proc/sys/net/core/somaxconn
#backlog 是 listen(int sockfd, int backlog) 函数中的 backlog 大小,Nginx 默认值是 511,可以通过修改配置文件设置其长度;
vi nginx.conf
#listen 8080 backlog=5000;

tcp全连接满了怎么处理的更多相关文章

  1. 性能分析之TCP全连接队列占满问题分析及优化过程(转载)

    前言 在对一个挡板系统进行测试时,遇到一个由于TCP全连接队列被占满而影响系统性能的问题,这里记录下如何进行分析及解决的. 理解下TCP建立连接过程与队列 从图中明显可以看出建立 TCP 连接的时候, ...

  2. 五分钟带你读懂 TCP全连接队列(图文并茂)

    爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方. 本文 架构技术专栏 已收录,有各种视频.资料以及技术文章. 一.问题 今天有个小伙伴跑过来告诉我有个奇怪的问题需要协助下,问题确实也 ...

  3. Python写安全小工具-TCP全连接端口扫描器

    通过端口扫描我们可以知道目标主机都开放了哪些服务,下面通过TCP connect来实现一个TCP全连接端口扫描器. 一个简单的端口扫描器 #!/usr/bin/python3 # -*- coding ...

  4. [TimLinux] TCP全连接队列满

    0. TCP三次握手 该图来自:TCP SOCKET中backlog参数的用途是什么? syns queue: 半连接队列 accept queue: 全连接队列 控制参数存放在文件:/proc/sy ...

  5. TCP全连接队列和半连接队列已满之后的连接建立过程抓包分析[转]

    最近项目需要做单机100万长连接与高并发的服务器,我们开发完服务器以后,通过自己搭的高速压测框架压测服务端的时候,发生了奇怪的现象,就是服务端莫名其妙的少接收了连接,造成了数据包的丢失,通过网上查资料 ...

  6. TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?

    前言 网上许多博客针对增大 TCP 半连接队列和全连接队列的方式如下: 增大 TCP 半连接队列的方式是增大 /proc/sys/net/ipv4/tcp_max_syn_backlog: 增大 TC ...

  7. TCP实战二(半连接队列、全连接队列)

    TCP实验一我们利用了tcpdump以及Wireshark对TCP三次握手.四次挥手.流量控制做了深入的分析,今天就让我们一同深入理解TCP三次握手中两个重要的结构:半连接队列.全连接队列. 参考文献 ...

  8. 【转】关于TCP 半连接队列和全连接队列

    摘要: # 关于TCP 半连接队列和全连接队列 > 最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 > > 查资料过程中发现没 ...

  9. 关于TCP 半连接队列和全连接队列

    关于TCP 半连接队列和全连接队列 http://jm.taobao.org/2017/05/25/525-1/ 发表于 2017-05-25   |   作者   蛰剑     |   分类于 网络 ...

  10. 三次握手 四次握手 原因分析 TCP 半连接队列 全连接队列

    小结 1. 三次握手的原因:保证双方收和发消息功能正常: [生活模型] "请问能听见吗""我能听见你的声音,你能听见我的声音吗" [原理]A先对B:你在么?我在 ...

随机推荐

  1. Java并发之原子变量及CAS算法-上篇

    Java并发之原子变量及CAS算法-上篇   概述 本文主要讲在Java并发编程的时候,如果保证变量的原子性,在JDK提供的类中式怎么保证变量原子性的呢?.对应Java中的包是:java.util.c ...

  2. Go plan9 汇编:说透函数栈

    原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 函数是 Go 的一级公民,本文从汇编角度出发看看我们常用的一些函数在干什么. 1. 函数 1.1 main 函数 在 main 函数中计算两数之 ...

  3. python configparser 创建ini文件,动态读取与修改配置文件,以及保存与读取字符串与QColor类型的配置

    # 动态配置所需 from import ConfigParser # 获取系统语系所需 import locale # QColor 类型的传参所需 from PyQt6.QtGui import ...

  4. JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析)

    JDBC JDBC(Java DataBase Connectivty,Java数据库连接)API,是一种用于执行Sql语句的Java API,可以为关系型数据库提供统一的访问,其由一组Java编写的 ...

  5. JavaScript – XMLHttpRequest

    前言 XMLHttpRequest 是 JavaScript built-in 的一个 class,用于发送 HTTP 请求,俗称 AJAX. 这几年 XMLHttpRequest 已经逐渐被 Fet ...

  6. JavaScript——基础语法

    书写语法    输出语句    变量    数据类型    运算符        == 与 === 区别:       ==:         1.判断类型是否一样,如果不一样,则进行类型转换     ...

  7. Google Aviator Evaluator 使用入门(一)

    Aviator Evaluator 使用入门(一) https://www.yuque.com/boyan-avfmj/aviatorscript/tvahat 一.什么是规则引擎 定义:规则引擎是一 ...

  8. BFS 颜色填涂———洛谷p1162

    填涂颜色 题目描述 由数字 \(0\) 组成的方阵中,有一任意形状的由数字 \(1\) 构成的闭合圈.现要求把闭合圈内的所有空间都填写成 \(2\).例如:\(6\times 6\) 的方阵(\(n= ...

  9. springboot多文件上传、删除、下载到项目本地

    package com.example.demo.document; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUti ...

  10. 彻底解决 user.config 文件损坏

    症状见 发生 Configuration system failed to initialize 错误的一个特例 解决的办法,在去读 user.settings 之前捕获错误,比如 Main() 里面 ...