• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

The Problem

Engineers often use “performance” and “scalability” interchangeably, leading to incorrect architectural decisions. A system that performs well for a single user may collapse under load, while a scalable system may be individually slow.

Core Idea

Performance measures how fast a system handles a single unit of work (response time for one request). Scalability measures how well the system maintains that performance as load increases (throughput with added resources). A system can be performant but not scalable, or scalable but not performant.

How It Works

  1. Measure baseline: Determine response time for a single request under minimal load (performance baseline).
  2. Increase load: Gradually ramp up concurrent requests while monitoring response time.
  3. Identify knee point: Observe where response time degrades significantly — the system is no longer scaling.
  4. Add resources: Increase nodes, memory, or connections. If response time returns to baseline, the system scales horizontally.
  5. Re-evaluate: Continue adding load until the next knee point. Diminishing returns indicate scaling limits.

Visual Explanation

G cluster_perf Performance cluster_scalability Scalability req 1 Request server Server req->server resp Fast Response server->resp many_req N Requests load_balancer Load Balancer many_req->load_balancer s1 Server 1 load_balancer->s1 s2 Server 2 load_balancer->s2 sn Server N load_balancer->sn collective Consistent Response per Request s1->collective s2->collective sn->collective performance Performance scalability Scalability performance->scalability builds into

Key Properties

  • Performance = speed measured for a single user or request (latency and throughput)
  • Scalability = ability to maintain performance proportionally as resources are added
  • Linear scalability means doubling resources doubles capacity with no performance loss
  • Not interchangeable: a Ferrari is performant (fast for one), a bus fleet is scalable (many passengers), a bus is neither

Connections

Edge Cases & Gotchas

  • Superlinear scaling: Some systems scale better than linearly (e.g., caching clusters where more nodes reduce cache contention). This is rare and often transient.
  • Performance hides poor scalability: A fast single node can mask the need to scale until load spikes reveal the bottleneck.
  • Amdahl’s Law applies: The serial portion of any workload caps maximum speedup, no matter how many resources are added.