System Design Core Concepts
performance与scalability
理解performance与scalability的区别与权衡
Scalability 是系统通过增减资源来应对需求变化的能力。
Trade-off 快览
Performance 关注“速度”:系统完成一次操作有多快(latency、response time)。
Scalability 关注“规模”:系统是否能随着 workload 增长而持续提供服务。
它们经常拉扯彼此:
- 增加机器让系统更 scalable,但分布式协调会引入额外 latency。
- 只为 performance 极致优化(单机、低通信)可能在流量增长时迅速 hit 限制。


下面是两种常见的 scaling 方式:

Vertical scaling
Vertical scaling(也叫 scaling up)是给现有机器加资源(CPU、RAM、Disk)来提升能力。换句话说,就是通过提升硬件规格来增强系统性能。
Advantages
- 实现简单
- 更易管理
- data consistency 更好
Disadvantages
- 停机升级风险高
- 硬件升级受限
- 可能成为 single point of failure
Horizontal scaling
Horizontal scaling(也叫 scaling out)是增加更多机器,把负载分散到多台 instances 上。
Advantages
- 更高 redundancy
- 更好的 fault tolerance
- 弹性更强、效率更高
- 升级更容易
Disadvantages
- 复杂度上升
- 数据一致性变难
- 下游服务压力更大