Queueing theory predicts waiting lines at shop tills, call centres, web servers, hospital emergency rooms and toll booths. With random (Poisson) arrivals and exponential service times, a few formulas tell you how long people wait and how many servers you need.
How to use the Queueing Theory Calculator
- Queue model
- Arrival rate λ (customers per time unit)
- Service rate μ per server
- Number of servers s
- Probability of exactly n customers: n =
Results update as you type, and everything is calculated in your browser.
How it works
Enter the arrival rate λ and the service rate μ per server in the same time unit, and the number of servers s. The queue is stable only if λ < s·μ (utilisation below 100%).
Inputs explained
| Field | What to enter |
|---|---|
| Queue model | Choose one: M/M/1 (one server), M/M/s (several servers) |
| Arrival rate λ (customers per time unit) | A number |
| Service rate μ per server | A number |
| Number of servers s | Choose one: 1, 2, 3, 4 … |
| Probability of exactly n customers: n = | A number |
What each result means
- Utilisation ρ = [Arrival rate λ (customers per time unit)]÷([servers]×[Service rate μ per server])×100
- Probability an arrival waits (Erlang C) = [Probability the system is empty P₀]×([Arrival rate λ (customers per time unit)]÷[Service rate μ per server])^[servers]÷(fact([servers])×(1 – [Arrival rate λ (customers per time unit)]÷([servers]×[Service rate μ per server])))
- Average number waiting L_q = [Probability the system is empty P₀]×([Arrival rate λ (customers per time unit)]÷[Service rate μ per server])^[servers]×([Arrival rate λ (customers per time unit)]÷([servers]×[Service rate μ per server]))÷(fact([servers])×(1 – [Arrival rate λ (customers per time unit)]÷([servers]×[Service rate μ per server]))^2)
- Average number in the system L = [Average number waiting L_q] + [Arrival rate λ (customers per time unit)]÷[Service rate μ per server]
- Average waiting time W_q = [Average number waiting L_q]÷[Arrival rate λ (customers per time unit)]
- Average time in the system W = [Average waiting time W_q] + 1÷[Service rate μ per server]
Example values
How the main result changes when Arrival rate λ changes and everything else stays at the example values above:
| Arrival rate λ (customers per time unit) | Average waiting time W_q |
|---|---|
| 4 | 0.0667 |
| 6 | 0.15 |
| 8 | 0.4 |
| 12 | -0.6 |
| 16 | -0.2667 |
Formula
ρ = λ/(sμ), a = λ/μ
P₀ = [Σₙ₌₀^{s−1} aⁿ/n! + aˢ/(s!(1 − ρ))]⁻¹, L_q = P₀·aˢ·ρ / (s!(1 − ρ)²)
L = L_q + a, W_q = L_q/λ, W = W_q + 1/μ
Worked example
Inputs — Queue model: M/M/1 (one server); Arrival rate λ (customers per time unit): 8; Service rate μ per server: 10; Probability of exactly n customers: n =: 3.
Results — Utilisation ρ = 80 %; Probability the system is empty P₀ = 0.2; Probability an arrival waits (Erlang C) = 0.8; Average number waiting L_q = 3.2; Average number in the system L = 4; Average waiting time W_q = 0.4; Average time in the system W = 0.5; Probability of exactly n customers = 0.1024.
Key terms
- Utilisation
- The fraction of time servers are busy.
- Erlang C
- The probability that an arriving customer has to wait.
Frequently asked questions
What does M/M/1 mean?
Markovian (Poisson) arrivals, Markovian (exponential) service, one server.
What happens when utilisation approaches 100%?
Queues and waits grow without bound.
Why does adding a server help so much?
Waiting time falls sharply as utilisation drops below about 80%.
What is Little's law?
L = λW: average number in the system equals arrival rate times average time spent.