先把负载假设写清楚
记录活跃用户、问答频率、峰值分布、输入/输出长度、工具次数、文档量、更新频率和质量目标。用户总量不能直接换算成 QPS;“支持一万人”缺少同时使用比例和工作负载。
容量知识点
| 量 | 定义与单位 | 使用边界 |
|---|---|---|
| 到达率 λ | 请求/秒 | 区分平均、峰值及持续时间 |
| 平均在途量 L | 稳定系统中 L≈λ×平均停留时间 W | W 包含排队和处理;不是峰值容量承诺 |
| token 负载 | 输入/输出 token 每秒及长度分布 | 同 QPS 可对应完全不同计算压力 |
| 队列/并发限制 | 排队长度、等待时限、执行上限 | 无界队列不能创造计算能力 |
| 存储 | 原文、切片、向量、索引、元数据、版本、副本 | 原始向量字节数不是总存储 |
| 缓存 | 命中率、访问范围、版本、有效期 | 不以跨租户复用换取速度 |
| 资源预算 | CPU/GPU/网络/内存、API 配额 | 依实际模型和后端测试瓶颈 |
在假设稳定负载为 20 请求/秒、平均端到端耗时 5 秒时,平均在途量约为 100。它不说明 100 个执行槽就能满足峰值或 p95;队列和饱和会反过来改变耗时。
原创存储手算
假设 10 万篇文档,每篇 10 个切片,每个向量 768 维且每维 4 字节,原始向量为 100,000×10×768×4=3,072,000,000 字节,约 3.07 GB(十进制)。文本、索引结构、元数据、旧版本和副本另加;不能用这个值报价完整部署。
费用模型
假设输入单价为每百万 token 2 个货币单位,输出单价为 6 个单位,一次请求输入 1000、输出 500,则模型费用为 1000/1,000,000×2+500/1,000,000×6=0.005 个单位。这是自制价格例子,不对应任何厂商现价。
项目成本还要算 embedding/重排、工具调用、失败重试、数据库、托管、网络和运维。按“尝试请求”“成功任务”分别核算;模型便宜但成功率低,单位成功任务成本可能更高。报价和预算使用当时实际服务条款,缓存折扣也按具体计费规则核对。
练习与完成标准
填负载假设表,设计短输入、长输入、长输出和突发四种负载,记录队列、p50/p95、TTFT、失败率和质量。把估算值与实测值并列,并解释差距。本篇没有模型压测或真实费用账单。
复习问题
- 为什么 QPS 和并发不能随意互换?
- 原始向量大小为何不足以估算总存储?
- 重试和失败怎样影响单位成功任务成本?
阅读依据
2026-10-08:AI 助手协助原创组织知识点、手算和练习,核对原始资料;假设例子不作为性能或费用实测。
原始资料与核验依据
- Google SRE Workbook:SLO 与可靠性实践Google SRE Workbook 作者团队 · 官方在线工作手册;章节未标示具体更新时间;核验 2026-10-08 · 访问于 2026-10-08
- System Design Primer:容量、缓存与设计面试Donne Martin 与项目贡献者 · master 快照 ae9bbd7b02d9;英文与中文章节交叉核对 · 访问于 2026-10-08
- vLLM 推理服务:缓存、吞吐与指标vllm-project 及课程/项目贡献者 · 默认分支 main · commit aecb717f10bc · 核验 2026-10-07 · 访问于 2026-10-07
继续探索
哪些笔记引用了这里
学习路径:AI 架构与面试:容量、可靠性与项目证据
第 2 / 6 步 · 验证任务:标单位估算在途请求、向量存储和成功任务成本,标明待测假设。