用途:在系统设计的需求分析之后,把模糊的规模描述转成少量具体数字,用于可行性判断而非精确计算。设计 1k QPS 与 1M QPS 是不同系统,10 GB 可放入内存,10 TB 需要分布式存储,因此先估算再选型。
主要能力:提供 QPS、存储、带宽、服务器数量、并发连接与内存等估算配方。核心公式包括 QPS = DAU × 每用户每日操作数 ÷ 86,400,峰值 QPS 约为平均值的 2 倍;存储/天 = 每日写入数 × 平均对象大小,总量再乘保留天数;带宽 = QPS × 载荷大小;服务器数 = 峰值 QPS ÷ 单机 QPS。参考经验值:单 SQL/RDBMS 节点约 1,000 QPS,键值存储节点约 10,000 QPS,缓存服务器约 100,000–1M QPS,一个现代 CPU 核心约 1,000 简单请求/秒。
使用方式:先明确输入,包括 DAU/MAU、每用户每日操作数、读写比、对象大小、保留时长和峰值系数。按单条乘除链计算,四舍五入到一位有效数字,标注单位并写下假设。需要确定性校验时运行脚本:python3 scripts/botec.py --dau 150e6 --actions 2 --peak 2 --obj-bytes 1e6 --media-frac 0.10 --retention-days 1825 --server-qps 1000 --json,输出 QPS、峰值、每日与总存储、带宽和服务器数量;单机 QPS 默认值对应上述经验值,可用 --server-qps 覆盖。
适用场景:在需求分析后、任何选择依赖规模的时刻使用,例如确定读写路径规模、决定分片还是单节点、论证缓存必要性,或校验某组件能否承受负载。
限制:不要追求精度或为每个微服务建模;不要估算不会改变决策的数字(YAGNI);单机速率是点查询经验值,范围扫描、连接和大型载荷可能差 10 倍,需用真实基准验证;注意 base-2 与 base-10 单位差异。资料未提供具体收费、价格或平台信息。