Skip to content

Metric Relationships

Little's Law

The fundamental law connecting the three core metrics:

Concurrency = RPS × Response Time (seconds)
Scenario RPS Latency Concurrency
Healthy 100 0.1s 10
Degrading 100 1.0s 100
Overloaded 80 5.0s 400

As latency grows, concurrency explodes — consuming threads, file descriptors, memory — which in turn causes more latency. This is the feedback loop of degradation.


Key Relationships

Higher latency → lower effective throughput

Even with the same RPS, if each response takes 5× longer, the system does 5× more work in parallel. Resources saturate sooner.

Increasing RPS → increases latency after a threshold

Every system has a saturation point. Below it, latency is flat. Above it, latency climbs nonlinearly.

RPS:      10   50  100  150  200
p95 (ms): 40   45   80  300  1200

That sharp knee is the system's capacity limit.

Larger payload → higher throughput, same RPS

More bytes per request means more network and CPU work per second, even if the request count stays constant.

Slow responses → higher concurrency → resource exhaustion

This is the chain reaction that crashes systems: high load → high latency → high concurrency → out of threads/connections → errors → higher latency.


Common Misconceptions

Misconception Reality
High RPS = good performance High RPS with p99 > 5s is not good performance
Low average latency = good UX Average hides the worst 1–10% of users
Zero errors = stable system A system with 0% errors but 10s latency is not stable
Fast under low load = scalable Many systems look great at 10 users, collapse at 1000

Reading a Performance Curve

A standard latency-vs-load curve has three zones:

Latency
  |                                    /
  |                                   /
  |                          ________/
  |_________________________/
  |
  +---------------------------------> RPS
       [stable]    [knee]   [degraded]
  • Stable zone: latency flat, system handles load easily
  • Knee: the inflection point — capacity limit reached
  • Degraded zone: latency climbs, errors appear, system is overloaded

The goal of performance testing is to find the knee and ensure production traffic stays well to the left of it.