问题出现得很突然,日志倒是留得挺全。白天在线客服正常,晚上跑 Batch 补数据,第二天上午九点开始在线接口连续 429,监控显示组织 TPM 在批次提交后两小时被拉到上限,Batch 本身是异步的却仍占配额。
刚开始盯着「在线侧没有独立项目 key」,折腾了半个多小时,排掉了。
原因不止一个,得分开看。Batch 与在线请求共用组织的 TPM 池。另一种情况是批次提交后集中调度 瞬时消耗高。
不容易想到的是,重试把 429 进一步放大。
拉出两边 token 消耗曲线对比时间
python usage_report.py --start 2026-11-10 --by project
给在线业务单独建项目并拆 key
python -c "print({'project':'online','key':'sk-...'})"
再往下把批次提交挪到凌晨并限制速率
python submit_batches.py --file batch.jsonl --after 02:00 --rate 500
剩下的就是在线侧加令牌桶 削掉重试尖峰
python -c "print({'rps':8,'burst':16})"
怎么算真的好了,看的是同一批现象。在线接口 429 归零,Batch 仍在第二天早上前跑完,两个项目的用量曲线互不挤压。
提醒一点。拆项目 key 也要确认组织级总配额,子项目的限额只能分配不能突破组织上限。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
