支付偶发超时诊断预览
日志已证实(仅合成数据)
86%的超时发生在20:00—20:20;集中于商户M17;金额无明显聚集;上游调用前等待连接池超过800ms。7月28日连接池上限从100降到40。
| 可疑位置 | 依据 | 验证 |
|---|---|---|
| src/pay/client.py:88 | acquire耗时与超时同窗 | 恢复上限并观察P95 |
| src/pay/retry.py:41 | 三次重试无抖动,形成尖峰 | 加jitter做压测 |
| src/pay/service.py:126 | 超时后同步查单占同一池 | 分离查询池 |
合理推测
连接池缩小是主要诱因,整齐重试放大峰值;商户M17流量集中使问题先暴露。尚不能证明上游性能正常,需要对照其request_id和响应时间。
止血与根治
止血:连接池恢复到80;重试降为1次并加随机抖动;超时订单进入异步查单,不向用户重复扣款。 根治:按上游拆连接池;建立等待、调用、查单三段指标;容量变更必须压测并灰度。
事故简报
近3天支付在晚高峰出现偶发超时,合成样本影响63笔、无重复扣款证据。初步定位连接池配置与同步重试叠加,已提出恢复容量和异步查单。下一步将对照上游日志确认根因并补变更门禁。
真实诊断必须读取 logs 与 src/pay,以上路径和数字不能用于生产事故报告。