技术分享案例:AD负载后部分请求卡慢问题分析与解决
一、问题背景
客户反馈在使用AD负载均衡设备后,部分终端请求出现卡顿、响应缓慢的现象,影响用户体验。直接切换回原有的haproxy负载则正常,初步判断问题与AD设备或相关网络路径有关。
二、影响范围
终端用户访问体验下降
仅部分请求受影响,呈现间歇性卡慢特征
三、问题排查过程
拓扑与环境确认
客户环境分为测试和生产两套系统:
AD → 防火墙 → 后端服务器
初步定位
通过分析数据包,发现卡慢的根本原因是后端服务器回包慢。
进一步在测试环境进行分段抓包(AD、防火墙、服务器),发现卡慢出现在防火墙到服务器这一段。
抓包现象:
-防火墙数据流显示:TCP三次握手时SYN包存在重传。-服务器数据流显示:防火墙发送的SYN包有丢失。 表明在该链路上存在握手异常或丢包,导致连接建立缓慢。
四、问题根本原因
经过分析,卡慢现象与TCP端口复用相关:
什么是端口复用?
客户端关闭连接后,使用相同的源端口发起新连接。正常情况下可以建立连接,但如果服务端或中间设备仍保留相同的五元组(源IP、源端口、协议、目的IP、目的端口)处于 TIME_WAIT 状态,则新连接可能无法建立,造成延迟或失败。
在本次环境中:
AD负载与后端服务器之间的防火墙在处理端口复用时,由于连接状态未及时释放,导致SYN重传和握手延迟,进而引起请求卡慢。 |