断开是谁先发起的
用户提前关闭页面、客户端超时或网关读超时,都会产生客户端断开:网关侧通常记为特定状态码,引擎检测到断开后会中止该请求的生成。要观察的是取消率,以及取消之后显存是否被释放。取消率突然升高,往往指向客户端配置或体验问题,而不是服务端故障。
基本信息
| 适用平台 | Nginx 网关与自托管推理服务 |
|---|---|
| 表现 | 访问日志出现客户端中止的状态码 |
| 服务端行为 | 多数引擎检测到断开后终止生成 |
| 监控指标 | 取消率、平均取消时间、缓存水位变化 |
观察方法
观察方法
grep ' 499 ' <nginx访问日志> | tail -5
tail -f <引擎日志> | grep -i -E 'abort|cancel|disconnect'
# 对照缓存水位,确认取消后显存是否被释放典型使用场景
- 长回答场景:客户端超时过短,生成被反复放弃
- 移动端体验:切后台或网络切换导致连接中断
- 网关读超时设置:给到覆盖生成时长的合理上限
- 容量观察:取消率升高时显存释放应该跟着变化
- 用量核对:已生成的 token 是否计入配额要事先明确
断开来源判断
| 断开来源 | 判断依据 | 处置方向 |
|---|---|---|
| 客户端主动关闭 | 日志中请求耗时很短即断开 | 排查客户端体验与超时配置 |
| 网关读超时 | 网关侧超时先到 | 把读超时放到覆盖生成时长 |
| 网络抖动 | 同源多个请求同时断开 | 排查链路与负载均衡 |
长回答场景让客户端与网关保持心跳:读超时放到覆盖生成时长的水平,减少其实生成完了而客户端先放弃的浪费。
把取消率做成曲线:单看一次日志看不出问题,趋势才能反映客户端侧发生了什么变化。
确认引擎是否真的中止生成:按引擎日志与缓存水位核对,避免请求被取消后仍在后台空转。