东营专业网站建设,电话怎么做网站推广,台州市城乡建设局网站,茶叶网络营销策划方案一 全连接队列 nginx listen 参数backlog的意义 nginx配置文件中listen后面的backlog配置
① TCP全连接队列概念 全连接队列: 也称 accept 队列 ② 查看应用程序的 TCP 全连接队列大小 实验1#xff1a; ss 命令查看 LISTEN状态下 Recv-Q/Send-Q 含义附加#xff1a;…一 全连接队列 nginx listen 参数backlog的意义 nginx配置文件中listen后面的backlog配置
① TCP全连接队列概念 全连接队列: 也称 accept 队列 ② 查看应用程序的 TCP 全连接队列大小 实验1 ss 命令查看 LISTEN状态下 Recv-Q/Send-Q 含义附加 8080端口是nginx监听的备注 全连接队列一般所处在服务端补充 Recv-Q 接收队列,一般为0,如果不是0,表示队列正在堆积 实验2 ss 命令查看 非 LISTEN状态下 Recv-Q/Send-Q 含义强调 ss 命令加不加l参数,Recv-Q/Send-Q 含义不同 补充 netstat 命令的 l参数同上-p: 显示进程名/程序名 ③ ab 模拟 TCP 全连接队列溢出
1、ab 简介 2、客户端执行 ab 命令对服务端发起压力测试 场景有时设置并发参数较大时,10000执行命令时会报如下错误 apr_socket_recv: Connection reset by peer (104)报错 ab -r 参数也可以解决报错 3、压测结果备注 关于ss的观察结果这里不再赘述,我们在wrk测试中观察 ④ wrk模拟 TCP 全连接队列溢出 模拟测试中环境内核参数1、somaxconn 是默认值 1282、nginx 的 backlog 是默认值 511
wrk安装和使用 1、客户端执行 wrk 命令对服务端发起压力测试,并发 3 万 个连接wrk -t 6 -c 30000 -d 60s http://192.168.3.200:8088 2、在服务端可以使用 ss 命令,来查看当前 TCP 全连接队列的情况建议 watch -n1 ss -lnt| grep 8088 实时观察 3、查看 TCP 最大全连接队列 溢出情况watch -n1 netstat -s | grep overflowed ⑤ linux中 TCP全连接队列满了使用什么策略来回应客户端
内核参数 /proc/sys/net/ipv4/tcp_abort_on_overflow备注 默认就是0,直接drop丢弃补充 置为1会在全连接队列满了的场景,服务端触发RST 排查 户端连接不上服务端,是不是服务端 TCP 全连接队列满的原因?tcp_abort_on_overflow 1 -- connection reset by peer -- 全连接队列溢出 ⑥ 如何增大 TCP 全连接队
TCP 全连接队列的最大值 min(somaxconn, backlog)细节同一操作系统somaxconn在物理机和虚拟机默认值不一样注意这里somaxconn和backlog的具体含义 案例 增加nginx中全连接队列的最大值1、默认的初始状态 2、增加net.core.somaxconn内核参数值 3、同时增加 nginx listen 指令的 backlog 参数,也同样设置成 5000 4、重启完后 nginx 服务后,服务端执行 ss 命令,观察 TCP 全连接队列大小 5、继续探究 -- 增大 TCP 全连接队列为5000后,继续压测说明 客户端同样以 3 万个连接 并发发送请求给服务端 6、对上述结果分析重点 查看TCP全连接队列是否溢出 ⑦ TCP连接失败排查 netstat -s TCP连接失败 相关统计 解释
netstat -s 输出解释