输入流量与数据假设,估算系统设计面试中的 QPS、读响应带宽和存储量。计算在浏览器中完成;可复制带参数的链接,与面试伙伴对比方案。

输入假设

单位采用十进制:1 KB = 1,000 bytes。请求只分为读和写;副本数包含主副本。

容量估算

平均请求量
231.48
QPS
峰值请求量
694.44
QPS
峰值读请求
625
QPS
峰值写请求
69.44
QPS
峰值读响应带宽
25
Mbps
保留数据 × 全部副本
2.19
TB

每日新增逻辑数据:2 GB

存储按每日平均写入累积;不会乘以峰值倍数。

当前显示默认示例。

公式与默认示例

默认输入为 100 万 DAU、每人每天 20 次请求、90% 读取、3 倍峰值、5 KB 读响应、1 KB 新增写入、保留 365 天、共 3 份副本。

指标计算方法默认结果
平均 QPSDAU × 每人每日请求数 ÷ 86,40020,000,000 ÷ 86,400 ≈ 231.48
峰值 QPS平均 QPS × 峰值倍数231.48 × 3 ≈ 694.44
读 / 写 QPS峰值 QPS × 各自请求占比625 读 / 69.44 写
读响应带宽峰值读 QPS × 响应 KB × 1,000 × 8 ÷ 1,000,000625 × 5,000 × 8 = 25 Mbps
保留存储每日写次数 × 新增 KB × 1,000 × 天数 × 总副本数2 GB/日 × 365 × 3 = 2.19 TB

先说明这些边界

  • QPS 是外部请求量,不等于数据库 QPS。缓存、批处理和一次请求的多次下游调用,都会改变后端负载。
  • 带宽仅包含读响应有效载荷,不含请求上传、协议头、复制流量或重试;不是总网卡容量。
  • 存储假设每次写入都新增指定体积的数据,达到保留期后删除。覆盖更新、去重、压缩、索引、日志、备份和容量余量需单独估算。
  • 峰值倍数是假设,不是监控结果。副本乘法也不代表压缩、纠删码或云厂商实际计费。
  • 本工具帮助进行量级推算,不能直接推出服务器台数。机器容量需要按实际请求类型压测。

用估算推动设计决策

把读取占比从 90% 改到 99%,观察写入存储下降、读响应带宽上升;再只调整峰值倍数,检查存储是否保持不变。最后说明哪个假设最不确定,以及如何用监控或压测验证。

继续练习:酒店预订系统 · 电商系统 · 系统设计 30 题

常见问题

如何从 DAU 估算 QPS?

用 DAU 乘以每位用户每天的请求数,再除以一天的 86,400 秒,得到平均 QPS。峰值需要另外给出倍率或实际监控数据。

1 TB 按 1,000 还是 1,024 计算?

本工具统一使用十进制:1 KB = 1,000 bytes,1 GB = 10^9 bytes,1 TB = 10^12 bytes。二进制单位应写为 KiB、GiB、TiB。

这些数字能用于生产容量规划吗?

它们是基于输入假设的量级估算。生产规划还需要实际请求分布、故障余量、延迟目标、索引日志等额外开销,以及压测结果。