Azure网络限制是否影响K6在AKS中的性能测试?
高并发负载测试下Azure网络相关问题分析
1. AKS节点层面的连接瓶颈
- 临时端口耗尽:Linux节点默认临时端口范围是32768-60999,约28000个可用端口。1000个VUs持续发起请求时,即便启用HTTP keep-alive,每个VU也会占用至少一个端口,加上TIME-WAIT状态的连接未及时回收,会快速耗尽端口资源,导致新连接无法建立,触发
dial i/o timeout。 - 节点带宽配额限制:AKS节点的VM实例有固定出站带宽(如Standard_DS2_v2为1Gbps),高并发请求占满带宽后,数据包会被丢弃,引发连接超时。
2. 目标服务的Azure原生限制
App Service场景
- 并发连接配额:不同定价层的App Service有明确的并发连接上限(基础层约1000并发,标准层随实例规模提升),当请求量超过当前实例或缩放单元的承载能力时,会出现连接拒绝或超时。
- 流量防护机制触发:App Service自带的DDoS防护或IP速率限制,在高并发时可能误判为异常流量,拦截部分连接,表现为无响应或状态码
0。
Application Gateway + Blob静态网站场景
- 网关实例连接上限:Application Gateway v2 SKU的中型实例约支持20000并发连接,若请求量超过当前实例的处理能力,会导致连接排队或直接超时。
- Blob存储请求速率限制:标准Blob存储账户默认请求速率上限为每秒20000次,1000个VUs的请求量若超出该阈值,会触发限流,引发连接超时。
排查与优化建议
- 检查AKS节点的端口使用情况:执行
ss -s命令,查看TIME-WAIT状态的连接数量,确认是否端口耗尽;可调整节点的net.ipv4.tcp_tw_reuse参数,加速TIME-WAIT端口回收。 - 查看Azure Monitor指标:重点关注AKS节点出站带宽、App Service并发连接数、Application Gateway后端健康状态、Blob存储请求速率等指标,定位瓶颈点。
- 优化K6测试配置:启用HTTP/2协议减少连接数,调整
keepalive参数提升连接复用率;分散测试流量到多个AKS节点,避免单节点过载。 - 调整Azure资源配置:升级App Service定价层、增加Application Gateway实例数量、将Blob存储切换为高级性能层级,提升服务的承载能力。
内容的提问来源于stack exchange,提问作者prosecutor
相关产品推荐
相关产品推荐

