延迟与吞吐的权衡

批量化与排队能提升吞吐但推高单次延迟;在线系统按延迟目标反推批大小与队列深度,离线系统可以换更大批次。按业务分层设定目标。

机制批处理摊薄单次开销;排队填满资源间隙
权衡批越大吞吐越高、延迟越高
分层在线路径小批次;离线与补偿路径大批次
  • 批大小:从 32 或 64 起步,按 P99 目标与压测上下调整
  • 队列深度:覆盖下游抖动窗口,超限触发拒绝而非无限等待
  • 等待超时:设置批量等待上限,避免低峰期凑不满不发
  • 分层策略:在线小批高频,离线与补偿路径大批低频
  • 复核口径:调整后同时看吞吐与 P99,两项都达标才放行

Little 定律速算

Little 定律速算
并发 = 吞吐 × 延迟(L = λ × W)
示例:目标 2000 QPS、平均延迟 50ms → 约需 100 并发
注意:容量设计用分位延迟而非平均延迟
延迟目标写成 SLO(如 P99 小于 200ms)再反推实现参数,避免各环节各自优化。

易错点

  • 在线接口使用大批次,用户感知变慢
  • 为追求单请求延迟放弃批量化,吞吐成本高

数据来源与参考

  • 《数据密集型应用系统设计》(Kleppmann)
  • Google SRE Book:Managing Load
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌