M/M/1 Average Number in System

Also known as average queue length · L for M/M/1 · jobs in system · expected number in queue · queue length formula

L=λμλL = \frac{\lambda}{\mu - \lambda}

Enter your known values, leave one input blank, and solves for the missing one. Try different units for next level excitement!

Learning zone

For a single server with random arrivals and random service times, the average number of jobs present, waiting plus in service, is L=λ/(μλ)L = \lambda/(\mu - \lambda). Thirty an hour into a forty-an-hour server gives 30/10=330/10 = 3. What drives it is the difference between the rates, the spare capacity, not their ratio, and that reframing explains most of the counterintuitive behaviour.

Here is the part that surprises people. Speeding the server from 40 to 50 an hour, a 25% improvement, drops the average from 3 jobs to 30/20=1.530/20 = 1.5, a halving. Speeding it from 50 to 60, the same absolute gain, only takes it from 1.5 to 1. Improvements near saturation are worth enormously more than improvements when you already have headroom, which is the opposite of how most optimisation effort gets allocated.

The assumption doing the heavy lifting is the first M: arrivals are Poisson, meaning independent and randomly spaced. Real traffic is often burstier than that, and burstier traffic queues worse, so this formula is an optimistic bound for web requests and a decent one for genuinely independent events like phone calls. If arrivals were perfectly evenly spaced instead, a server at 75% utilisation would have a queue of zero and 3 would be badly wrong. Randomness alone, not overload, is what puts those three jobs in the system.

M/M/1 Average Number in System
L=λμλL = \frac{\lambda}{\mu - \lambda}
Where
  • LL= Jobs in system (jobs)
  • λ\lambda= Arrival rate (1/h)
  • μ\mu= Service rate (1/h)
Missing one of these? Work it out first, then come back