apisix流量高峰期服务卡住问题

现象描述

在流量高峰期,apisix偶现服务卡住,部分请求无法经过apisix转发。

分析步骤

1.起初线上服务出现异常,开发优先关注解决线上问题,发现降低业务流量之后,apisix恢复了;
2.分析apisix监控,发现cpu, mem, load没有异常;
3.查询apisix日志,发现日子中存在大量的"upstream time out"错误,检查上游服务,上游服务正常;
4.继续分析apisix日志,发现apisix存在频繁写临时文件操作,怀疑是写文件导致nginx worker卡住了,调整client_body_buffer_size大小让更多的报文直接在内存中交互,避免文件落盘;
5.两天后问题依旧存在,本次对apisix进行抓包,找到部分异常请求如下;
10.140.24.0(客户端) 10.140.102.250(apisix)

lQLPJxz33i4SFM_NAmnNB36wgyV6_kbQLdgI2nAHf1JeAA_1918_617

lQLPJyHgyhswk8_NAoXNB3-w2UG-yCAU01kI2nAHf1JeAg_1919_645

lQLPKGN3VymS5M_NAnfNB3-wyzebadVEl34I2nAHf1JeAQ_1919_631

通过分析报文,apisix发送数据值正常的,没有延迟,但是apisix无法收到客户端的ACK报文,ACK报文丢失,分析是网络原因
6.经过分析,发现是k8s的flannel组件存在性能瓶颈,flannel会将TCP报文拆成UDP报文发送,当UDP报文数量达到80kp/s此时丢包率会上升,网络延迟飙升。

小结

分析网络问题,黄金手段还是抓包分析,出现问题一定要先进行抓包。

posted on 2025-10-28 18:55  寒魔影  阅读(7)  评论(0)    收藏  举报

导航