如何评估代理连接能够稳定承载多少 WebSocket 长连接
评估 WebSocket 代理链路容量时,应说明并发数、观察时长和断连指标的统计口径。本文介绍如何区分稳态长连接容量与建连速率,并依据客户端、代理和上游证据定位瓶颈。
WebSocket 长连接容量需要同时说明并发数、持续时长和可接受的断连指标。报告“支持多少并发”而不说明观察窗口和连接状态,无法表示稳定性。测试应逐档加压并观察各层资源占用,识别先达到上限的是客户端、代理还是上游。
WebSocket 容量必须结合并发、时长和断连率判断
三个参数必须一起定:并发连接数、保持时长和可接受的断连指标。断连指标还要说明分母,例如观察期内异常断开的会话比例,或每连接小时的断开频率。具体阈值应由业务目标确认。若多个业务共用账号、出口或 IP 池,实际配额范围需查当前产品授权,不能仅从测试结果推断。
同时明确测试对象:是客户端到代理的条数,还是包含上游服务的全链路。两者数字可能相差很多,结论里必须写清楚是哪一种。
阶梯加压如何逐步暴露连接容量瓶颈
从基线开始,按固定步长或翻倍向上爬升。每档保持的时间要覆盖代理的空闲回收周期与心跳周期,否则看到的“稳定”只是还没走到回收时刻。档与档之间留冷却,让连接自然释放,再进入下一档。
一次打满不可取:所有客户端同时建连会形成握手风暴,断连集中的原因往往是被这种瞬时压力放大,而不是稳态容量不足。
阶梯参数建议固定下来,每次复测不改。
- 参数:并发连接 | 起点:由业务目标确定 | 步长:按预先约定的固定步长 | 每档持续:分开记录预热、稳态观察与正式保持 | 判据:按事先约定的断连指标判定
- 参数:新建速率 | 起点:单独设计建连/重连实验 | 步长:与稳态并发测试分开变化 | 每档持续:记录各档建连持续时间 | 判据:按建连成功率和拒绝证据判定
- 参数:保持与冷却 | 起点:按业务场景确定 | 步长:正式实验中保持一致 | 每档持续:记录是否主动制造空闲、档后资源回落情况 | 判据:确认上一档连接已释放或记录残留后再升档
客户端、代理和上游都可能成为容量瓶颈
如果容量测试通过 HTTP 代理建立隧道,HTTP 代理的类型与企业接入方式可参考HTTP 代理指南。具体并发配额及其作用范围,应以当前后台和授权说明为准;多出口结果不能在未确认账号或 IP 池是否共享额度时直接相加。测试指标的样本和稳定性口径可参照代理 IP 可用率、延迟和稳定性测试。
- 层:客户端 | 典型上限:文件描述符上限、本地端口耗尽、内存 | 撞线时的表现:建连失败、无法创建连接 | 该看什么:进程句柄与错误类型
- 层:代理侧 | 典型上限:配额和新建速率限制(以产品说明为准) | 撞线时的表现:新连接被拒、已有连接异常 | 该看什么:代理侧连接 ID、拒绝事件与配额记录
- 层:上游服务 | 典型上限:连接数上限、单用户并发限制 | 撞线时的表现:连接建立后很快被断开 | 该看什么:上游日志与关闭码
断连集中在哪一档、哪项资源先达到限制,可以帮助缩小排查范围,但阶段本身只是线索。应按连接 ID 对照客户端错误、代理侧拒绝事件和上游日志;握手失败也可能来自客户端配置、网络或上游鉴权,不能仅凭阶段断定来源。
单档结果至少记录目标并发、实际在线连接数、消息负载、心跳与重连行为、建连速率和资源占用。分别定义建连成功率(成功建立数/尝试建立数)、异常断开会话比例(观察期内异常断开的会话数/纳入观察的会话数)或每连接小时断开频率,不能将这些指标统称为“断连率”。
重连风暴为何会放大代理侧压力
大量连接同时断开后,客户端的重连策略可能形成新的建连峰值。容量实验应记录该策略的退避、随机抖动和恢复时间;若目标是测稳态长连接容量,应固定 ramp-up 速率并另行测试建连或重连速率,避免同时改变两个变量。
否则测出来的不是容量上限,而是重连策略的上限,两者不能混为一谈。
容量结论必须说明测试条件和实际瓶颈
结论只适用于记录的客户端版本、网络条件、代理配置和测试负载。报告并发档位、实际在线数、保持时长、指标分母、异常断开数、瓶颈证据及重连配置;账号、出口和 IP 池的配额范围应从当前后台或授权说明确认,不替服务商推定并发能力。
- 记录项:档位与并发数 | 填写内容:目标并发、实际建连/在线数、固定 ramp-up 速率
- 记录项:保持与冷却 | 填写内容:预热、稳态观察、正式保持时间、连接资源回落情况
- 记录项:断连统计 | 填写内容:异常断开会话数、分母与所用频率口径
- 记录项:重连表现 | 填写内容:重连次数、退避是否生效、恢复时长
- 记录项:瓶颈判断 | 填写内容:客户端、代理侧、上游,依据哪条证据
FAQ
连接都能建立,为什么很快就断?
可能原因包括客户端资源限制、代理或上游策略、心跳与空闲回收不匹配。连接阶段和关闭信息只能提供线索,应结合客户端、代理与上游对应日志或可控测试记录核实。
容量测试要不要换多个出口 IP?
是否需要多个出口取决于测试目标。若评估单出口能力,应分别测量;若评估多出口整体能力,应先确认是否共用账号、池或速率配额,再说明聚合方法。更换出口时固定其他条件,并记录每次实际分配结果。
如何判断是代理上限还是上游上限?
按连接 ID 对齐客户端错误、代理侧响应来源和上游记录。握手阶段失败只是线索,连接建立后的断开也可能来自代理或客户端;HTTP 代理认证、代理连接和上游关闭应分别按可用证据判断。
容量测试结果应注明连接数、保持时长、断连指标及分母、资源负载和瓶颈证据。接入参数可查阅代理设置帮助。原并发规划和故障排查专题链接目前返回 404,暂不使用。
