并发下给 LLM 设预算的 6 个坑:竞态、浮点、孤儿预留与跨期结算
MaverikSh · reddit · 2026-10-24
作者复盘了在生产环境(并行 worker、流式输出、重试)下给 LLM 花费设上限时,朴素做法会挂掉的 6 个具体问题及修复方案。
- Check-then-act 竞态:50 个 worker 同时读到还有额度然后全部通过。修复:用 Redis Lua 脚本或 Postgres 条件 UPDATE 把检查与预留做成原子操作,按最坏成本预先预留。
- 浮点记账:累加微元会漂移,全部用整数(微美元)与 HINCRBY。
- 预留永不释放:worker 崩溃导致预留泄漏、预算慢慢被锁死。修复:预留带 ID 和过期时间(sorted set),sweeper 释放过期预留,按预留 ID 结算防止双重释放。
- 流被中断:客户端断连后拿不到 token 用量,按预留估算值结算或自行统计流式输出。
- 嵌套预算死锁/部分提交:key/team/org 三层限额要么在一个 Lua 脚本里一次预留(cluster 用 hash tag 保证同节点),要么 SQL 按固定顺序加锁。
- 周期跨期:预留和结算落在不同周期,把周期 key 存在预留上按其结算。
另外给出最坏成本估算公式(本地数 input tokens + maxtokens 计价 × 1.1 余量,因 tiktoken 对 Claude/Gemini 计数不准),以及预算存储宕机时的中间策略:放行但给每个 key 一个仅宕机期间生效的小额 allowance。
「编程与Agent」频道最新
- 用 GitHub Actions 定期在干净 Ubuntu 容器里验证 dotfiles 安装脚本 — 4310sy · 2026-10-24
- Codex CLI 隐藏功能:remote-control 被赞比 Claude Code 更好用 — antirez · 2026-10-24
- mitsuhiko 实测:折叠屏 Duo 暂不支持 PWA,但可开启双屏 API — mitsuhiko · 2026-10-24
- Reddit 求荐:哪些无代码 AI Agent 平台真能用于生产环境 — Austin_Ox23 · 2026-10-24
- 开发者吐槽:Claude 写码快但失准,OpenAI Astra 空转数天 — StewartalsopIII · 2026-10-24
- 3090上跑Qwen 27B本地RAG,韩语基准打平Opus — Front-University4363 · 2026-10-24