Calculate required job queue depth to absorb burst traffic without dropping jobs.
The M/M/1 queuing model (Markovian/memoryless arrivals, Markovian service times, 1 server) gives closed-form formulas for a single-queue-single-server system's steady-state behavior from just two inputs: arrival rate (λ) and service rate (μ = 1/average service time). Utilization ρ = λ/μ must stay below 1 for the queue to reach a stable steady state at all — as ρ approaches 1, both average queue length (ρ²/(1-ρ)) and average wait time grow sharply and non-linearly, the same underlying mathematics behind why systems that look 'mostly fine' at 70-80% utilization can degrade dramatically with only a modest additional load increase.
M/M/1 average jobs in system
L = ρ / (1 − ρ), where ρ = λ / μ = λ × avg_service_time
M/M/1 average wait time in queue
Wq = ρ² / (λ × (1 − ρ))
It means jobs are arriving at or faster than the single server can process them on average, so the queue grows without bound over time rather than reaching a stable steady state — no finite average queue length exists. In practice this shows up as an ever-growing backlog until something is changed (add capacity, shed load, or reduce arrival rate).
Because average jobs in system scales as ρ/(1-ρ), which has a vertical asymptote at ρ=1 — going from 80% to 90% utilization more than doubles the queue length (from 4 to 9), and going from 90% to 95% nearly doubles it again (9 to 19), illustrating why 'a little more load' near saturation causes disproportionate backlog growth.
It's a simplification — real arrival processes and service times are rarely perfectly memoryless/exponential, and most real systems have multiple workers (M/M/c) rather than exactly one. Still, M/M/1 captures the qualitative shape of queue behavior (sharp growth as utilization approaches 1) well enough to be a useful first-order estimate before reaching for more complex queuing models.