Allspaw's repeatable procedure for finding any component's ceiling — the same four steps for web servers, databases, and caches:
1. **Measure the server's primary function** (Apache hits, database queries-per-second).
2. **Measure its fundamental hardware resources** (CPU, memory, disk, network).
3. **Relate the two** — e.g. *n* database queries → *m*% CPU. Find the relationship (often roughly linear over a working range).
4. **Find the maximum acceptable resource usage (the ceiling)** by either carefully increasing real production load (via load-balancer manipulation or app techniques) or simulating production load as closely as possible.
The relationship in step 3 is what makes forecasting possible: once you know the resource-per-unit-of-work, you can translate projected traffic into projected resource use. And because any architecture change can move the ceiling, the method is run repeatedly — capacity planning is a process, not a one-time event.
---
*Source: [[The Art of Capacity Planning]] (John Allspaw, O'Reilly 2008) — Ch 3 — Measurement: Units of Capacity*