首页/开发/系统分析与架构设计速查/通用可扩展性定律(USL)

通用可扩展性定律(USL)

在 Amdahl 之外补充一致性开销:争用导致收益递减,交叉耦合(通信与同步成本)会让吞吐在到达顶点后下降,用于解释加机器反而变慢的现象。

直觉

直觉
吞吐随资源增加先升后平再降:
- 争用(contention):限制渐近上限
- 一致性/交叉耦合(coherency):压过收益后转为下降
扩容前先定位是争用还是耦合主导
  • 先在小规模做阶梯压测,拟合吞吐-资源曲线
  • 判别形态:线性段、平台段还是下降段,对应争用或耦合主导
  • 筛查共享点:单点锁、共享缓存元数据、全连接心跳与集中协调
  • 针对性改造:分区拆分共享状态、批量化通信、减少跨节点同步
  • 改造后复测扩展斜率,按实测斜率而非实例数外推容量
分布式锁、共享缓存元数据、全连接心跳是交叉耦合的常见来源,拆掉它们往往比加机器有效。

易错点

  • 按线性外推扩容收益,忽视一致性开销
  • 出现收益递减仍继续加实例,成本上升吞吐不增

数据来源与参考

  • Neil Gunther《Guerrilla Capacity Planning》
  • 《性能之巅(第 2 版)》(Gregg)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌