Tutorials › Stochastic Processes › Performance Measures for the M/M/c Queue

Multi-Server and Finite Queues · Tutorial 654 of 994

Performance Measures for the M/M/c Queue

Use Erlang C and Little’s law to calculate and check the main steady-state performance measures for a stable M/M/c queue.

Advanced 12 min read

What You'll Learn

  • Calculate the Erlang C probability that an arrival must wait
  • Derive the mean number waiting from the geometric queue-length tail
  • Separate customers waiting in line from customers in the system
  • Apply Little’s law with the customer arrival rate
  • Check mean time in system using both waiting time and system size
  • Recognize when stability and finite-mean assumptions are required

From Erlang C to Mean Performance

For a multi-server queue, a delay probability alone does not describe the typical customer experience. Two systems can have similar probabilities of delay but different queue lengths, waiting times, and service capacities. In a stable M/M/c queue, the Erlang C probability connects directly to the mean number waiting; Little’s law then converts that mean into waiting time. Keeping the customer flow rate distinct from total service capacity is essential.

Consider a queue on a probability space \((\Omega,\mathcal{F},\mathbb{P})\). Arrivals form a Poisson process of rate \(\lambda>0\). There are \(c\ge1\) parallel servers, each with independent exponential service times of rate \(\mu>0\). The queue has unlimited waiting space, and arrivals are served in order of arrival. Let \(N_t\) be the number of customers in the system at time \(t\), with state space \(S=\{0,1,2,\ldots\}\); use the natural filtration \(\mathcal{F}_t=\sigma(N_s:0\le s\le t)\). The model is considered in its stationary regime.

Write \(a=\lambda/\mu\) for the offered load and \(\rho=\lambda/(c\mu)=a/c\) for utilization. The stability condition is \(\rho<1\), equivalently \(\lambda<c\mu\). Let \(\pi_n=\mathbb{P}(N_t=n)\) in stationarity. The stationary probabilities are

$$ \pi_n=\begin{cases} \pi_0\,\dfrac{a^n}{n!},&0\le n<c,\\[6pt] \pi_0\,\dfrac{a^c}{c!}\rho^{\,n-c},&n\ge c, \end{cases} \qquad \pi_0=\left(\sum_{n=0}^{c-1}\frac{a^n}{n!} +\frac{a^c}{c!(1-\rho)}\right)^{-1}. $$

These probabilities give the Erlang C delay probability, denoted \(C\): it is the stationary probability that an arriving customer finds all \(c\) servers occupied and must wait. For a Poisson arrival process, arrivals see the stationary state probabilities (the PASTA property), so

$$ C=\mathbb{P}(N_t\ge c) =\frac{\pi_0a^c}{c!(1-\rho)}. $$

In what follows, the mean queue length \(L_q\) counts only customers waiting, and the mean system size \(L\) counts both waiting and in service. The mean waiting time \(W_q\) ends when service begins; the mean time in system \(W\) includes service.

Mean Queue Length and the Geometric Tail

When the system has at least \(c\) customers, every additional customer is waiting. The stationary probability of having \(c+k\) customers is \(\pi_c\rho^k\) for \(k\ge0\). Since \(C=\sum_{k\ge0}\pi_c\rho^k=\pi_c/(1-\rho)\), the conditional excess above \(c\), given that all servers are occupied, has a geometric tail. The mean number waiting is therefore obtained from a weighted geometric sum.

Result: For a stable M/M/c queue, the stationary mean queue length is \(L_q=C\rho/(1-\rho)\). The mean system size is \(L=L_q+a\). With customer arrival rate \(\lambda\), Little’s law gives \(W_q=L_q/\lambda\) and \(W=L/\lambda=W_q+1/\mu\).

Proof. Put \(S=\sum_{k\ge0}k\rho^k\), which converges because \(0\le\rho<1\). Reindexing the product \(\rho S\) gives \(\rho S=\sum_{k\ge1}(k-1)\rho^k\), so

$$ (1-\rho)S =\sum_{k\ge1}k\rho^k-\sum_{k\ge1}(k-1)\rho^k =\sum_{k\ge1}\rho^k =\frac{\rho}{1-\rho}. $$

Thus \(S=\rho/(1-\rho)^2\). In state \(c+k\), the number waiting is \(k\), and in states below \(c\) it is zero. Hence \(L_q=\sum_{k\ge0}k\pi_c\rho^k=\pi_c\rho/(1-\rho)^2\). Substituting \(\pi_c=C(1-\rho)\) yields \(L_q=C\rho/(1-\rho)\).

To find the mean number in service, note that in state \(n\) there are \(\min(n,c)\) busy servers. Stationary flow balance across the set of states \(\{0,\ldots,n\}\) gives \(\pi_n\lambda=\pi_{n+1}\mu\min(n+1,c)\): upward crossings occur from \(n\) at rate \(\lambda\), and downward crossings from \(n+1\) at rate \(\mu\min(n+1,c)\). Summing over \(n\ge0\), and using \(\min(0,c)=0\), gives \(\lambda=\mu\sum_{m\ge0}\pi_m\min(m,c)\). Thus the mean number in service is \(\lambda/\mu=a\), and \(L=L_q+a\).

Finally, Little’s law states that in a stable stationary system with finite mean queue or system size and a well-defined long-run customer flow rate, mean number equals arrival rate times mean time in that part of the system. Applying it to the waiting line and to the whole system gives \(L_q=\lambda W_q\) and \(L=\lambda W\). A customer’s time in the system is their waiting time plus their service time. The exponential service rate \(\mu\) gives mean service time \(1/\mu\); therefore \(W=W_q+1/\mu\). These equations prove the stated formulas. \(\square\)

The restriction \(\rho<1\) matters: it makes the stationary geometric tail summable and gives a finite steady-state mean. At \(\rho\ge1\), these stationary performance formulas do not apply to the unlimited-capacity M/M/c queue.

Worked Example: Two Servers with Erlang C Probability \(9/14\)

Take \(c=2\), \(\lambda=3\), and \(\mu=2\), in consistent time units. The row-sum check used for a discrete transition matrix is not relevant here; the model’s event rates are arrivals at rate \(3\) and service completions at total rate \(2\min(n,2)\) in state \(n\). The offered load is \(a=3/2\), and \(\rho=3/(2\cdot2)=3/4<1\), so the queue is stable.

First calculate the normalization sum: \(1+a=1+3/2=5/2\), and \(a^2/(2!(1-\rho))=(9/4)/(2\cdot1/4)=9/2\). Thus \(\pi_0=(5/2+9/2)^{-1}=1/7\). The Erlang C probability is

$$ C=\frac{(1/7)(9/4)}{2(1/4)} =\frac{9}{14}. $$

Then \(L_q=C\rho/(1-\rho)=(9/14)(3/4)/(1/4)=27/14\). The mean number in service is \(a=3/2\), so \(L=27/14+3/2=27/14+21/14=24/7\). Using the customer arrival rate for Little’s law gives \(W_q=(27/14)/3=9/14\) time units. The mean total time is \(W=W_q+1/\mu=9/14+1/2=8/7\) time units.

Check: Little’s law for the whole system gives \(L/\lambda=(24/7)/3=8/7=W\). Also, \(W_q+1/\mu=9/14+7/14=8/7\), so both routes to the mean system time agree.

Worked Example: Three Servers with a Different Delay Probability

Let \(c=3\), \(\lambda=4\), and \(\mu=2\). The total service capacity is \(c\mu=6\); the offered load is \(a=4/2=2\), and utilization is \(\rho=4/6=2/3<1\). Thus the stationary performance formulas apply.

The normalization sum below \(c\) is \(1+2+2^2/2=1+2+2=5\). Its tail term is \(2^3/(3!(1-2/3))=8/(6\cdot1/3)=4\), so \(\pi_0=1/(5+4)=1/9\). Therefore

$$ C=\frac{(1/9)(8/6)}{1-2/3} =\frac{4}{9}. $$

The mean queue length is \(L_q=(4/9)(2/3)/(1/3)=8/9\). The mean number in service is \(a=2\), so \(L=8/9+2=26/9\). Consequently, \(W_q=(8/9)/4=2/9\), and \(W=W_q+1/2=2/9+1/2=13/18\) time units.

Check: \(L/\lambda=(26/9)/4=26/36=13/18\), which matches the value from waiting plus service. The mean number in service is also consistent with the arrival flow: \(\mu a=2\cdot2=4=\lambda\).

Worked Example: The One-Server Special Case

Set \(c=1\), \(\lambda=1\), and \(\mu=2\). Then \(a=\rho=1/2<1\). The normalization formula gives \(\pi_0=(1/(1-\rho))^{-1}=1/2\). Since \(a^c/c!=1/2\), Erlang C gives \(C=\pi_0a/(1-\rho)=(1/2)(1/2)/(1/2)=1/2\).

Now \(L_q=C\rho/(1-\rho)=(1/2)(1/2)/(1/2)=1/2\), while \(a=1/2\). Hence \(L=L_q+a=1\), \(W_q=L_q/\lambda=1/2\), and \(W=W_q+1/\mu=1/2+1/2=1\) time unit.

Check: \(L/\lambda=1/1=1=W\). Also, the one-server queue has no more than one customer in service, and its mean number in service is \(a=1/2\), as given by the formula.

Rates, Interpretation, and Common Errors

The rate in Little’s law is the rate at which customers enter the system. In this stable, unlimited-capacity queue, every arrival eventually receives service, so the long-run customer throughput equals \(\lambda\). The quantity \(c\mu\) is the maximum total service capacity when all servers are busy; it is not the customer arrival rate. Using it in place of \(\lambda\) when converting \(L_q\) to \(W_q\) gives the wrong answer.

For example, in the two-server calculation above, the incorrect substitution \(W_q=L_q/(c\mu)\) gives \((27/14)/4=27/56\). The correct calculation is \(W_q=L_q/\lambda=(27/14)/3=9/14\). The incorrect value would also fail the defining relation \(L_q=\lambda W_q\), since \(3\cdot27/56=81/56\ne27/14\).

A second frequent error is to confuse mean queue length with mean system size. \(L_q\) excludes customers in service; \(L\) includes them. Their difference is the mean number in service, \(\lambda/\mu=a\), not the number of servers \(c\) in every state. The system may have idle servers, so adding \(c\) to \(L_q\) overcounts service occupancy unless all servers are always busy.

Finally, the Erlang C probability is a probability of waiting, not a mean queue length. The conversion \(L_q=C\rho/(1-\rho)\) uses the geometric tail of the stationary number waiting, and requires \(\rho<1\). As utilization approaches one from below, the factor \(\rho/(1-\rho)\) grows; a modest change in delay probability can therefore accompany a substantial change in expected queue length and waiting time.

MeasureMeaningFormula
\(C\)Probability an arrival waits\(\pi_0a^c/[c!(1-\rho)]\)
\(L_q\)Mean number waiting\(C\rho/(1-\rho)\)
\(L\)Mean number in the system\(L_q+a\)
\(W_q\)Mean time waiting for service\(L_q/\lambda\)
\(W\)Mean total time in the system\(L/\lambda=W_q+1/\mu\)

Check Your Understanding

Use exact arithmetic and verify each performance measure with the corresponding Little’s law relation.

  1. For \(c=2\), \(\lambda=2\), and \(\mu=2\), calculate \(a\), \(\rho\), \(C\), \(L_q\), \(L\), \(W_q\), and \(W\).
  2. Explain why the geometric-tail calculation for \(L_q\) requires \(\rho<1\), and identify the sum that fails to converge at \(\rho=1\).
  3. For \(c=3\), \(\lambda=3\), and \(\mu=2\), find the mean number in service from the flow-balance relation. What is the arrival rate used in \(W_q=L_q/\lambda\)?
  4. A calculation uses \(L_q/(c\mu)\) as the mean waiting time. State the conceptual error and the correct denominator.
  5. Explain the difference between \(C\), \(L_q\), and \(L\) in words, including whether customers in service are counted in each.