The limiting resource
Every system has a bottleneck, the one resource that saturates first and caps throughput. Scaling anything else is wasted effort until you relieve it.
Candidates to check
- CPU bound: the processor pegs at full while other resources idle.
- Memory bound: paging or eviction thrashing slows everything.
- IO or disk bound: storage cannot keep up with reads or writes.
- Network bound: bandwidth or connection limits cap throughput.
- Lock or contention bound: threads wait on a shared resource.
How to find it
Drive load up and watch which resource hits its ceiling first. The bottleneck is where utilization saturates while latency climbs.
Once relieved, the bottleneck moves to the next tightest resource, so identification is an ongoing cycle rather than a one time fix.
Key idea
A system is capped by its tightest resource, so find the saturating one, relieve it, then chase the bottleneck as it moves.