close wait 问题学习

为什么会出现close wait

数据库连接不释放 问题实际上上线之前就会发现,线上系统出这种问题根本就是测试不过关。

我之前也遇到过出现很多CLOSE_WAIT的场景,一般出现这种情况,都是同步通信的场景,server端执行业务超时 ,client端主动断开连接的场景。

特别是一些写库的操作,随着表越来越大,写操作越来越慢,当慢到一定程序后会触发client端的超时再重试机制,越来越多的写操作积压在server端,很短的时间内server端被搞的socket全是CLOSE_WAIT,只能重启,重启也是好一段时间。

所以现在我们现在对同步通信机制一定要保证不能有不可预估的开销。这类开销一律走异步机制

实现负载均衡:通过实现负载均衡,将请求分发到多个服务器上,以分散负载并提高系统的吞吐量。负载均衡可以帮助避免单个服务器过载的情况发生。

调整应用程序逻辑:如果应用程序的逻辑不合理或存在性能瓶颈,可能会导致接口响应缓慢或超时。可以对应用程序逻辑进行调整或优化,以提高接口的响应速度和处理能力。

看着像啊,盲猜。负载均衡对外的链接数被限制了,比如port_range设置过小达不到65536这样。请求一直发,很容易就打满端口号,

这里提出两个思考题,我觉得非常有意义,大家自己思考下:

为什么一台机器几百个 CLOSE_WAIT 就导致不可继续访问?我们不是经常说一台机器有 65535 个文件描述符可用吗?

为什么我有负载均衡,而两台部署服务的机器确几乎同时出了 CLOSE_WAIT ?

看着像啊,盲猜。负载均衡对外的链接数被限制了,比如port_range设置过小达不到65536这样。请求一直发,很容易就打满端口号,

1.需要看最大连接数配置的是多少

2.业务问题导致的异常和负载均衡没关系,出问题肯定是都出问题

请问一下 ,socket 状态 监控工具用的是什么工具

相关推荐
茯苓gao22 分钟前
嵌入式开发笔记:CAN与CAN FD完全指南——从帧格式差异到MCU选型实战
网络·笔记·stm32·嵌入式硬件·学习·汽车
木木_王31 分钟前
嵌入式学习 | STM32 裸板驱动开发(Day06) | DHT11温湿度传感器超详解(单总线时序+全套驱动代码+智能温湿度报警项目)
驱动开发·stm32·学习
FellAveal1 小时前
【Go语言入门学习笔记】Part19.速率控制、原子计数器、互斥锁(Mutex)、状态协程
笔记·学习·golang
你怎么知道我是队长1 小时前
经典蓝牙(Bluetooth Classic / BR/EDR)学习计划
学习
极地野狼 音乐哔哔2 小时前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
学习·microsoft
oier_Asad.Chen3 小时前
【洛谷题解/AcWing题解】洛谷P4011 孤岛营救问题/AcWing1131拯救大兵瑞恩
数据结构·笔记·学习·算法·动态规划·图论·宽度优先
xxwl5854 小时前
Git 完整学习笔记:从入门到团队协作
笔记·git·学习
minglie14 小时前
zynq的xlnx_rebase_v5.4_2020.2分支打patch-5.4.3-rt1.patch.xz补丁
学习
醉城夜风~5 小时前
HTML常用标签详解学习博客:从基础标签到页面结构完整掌握
前端·学习·html
minglie16 小时前
蚂蚁S9矿板PS 内核定时器驱动
学习