Tutorials › Stochastic Processes › Queue-Length Tails in the M/M/c Queue

Multi-Server and Finite Queues · Tutorial 652 of 994

Queue-Length Tails in the M/M/c Queue

Use the stationary geometric tail of an M/M/c queue to find and check probabilities of long queues.

Advanced 9 min read

What You'll Learn

  • Distinguish customers waiting from customers in service.
  • State the stability condition needed for a stationary queue-length distribution.
  • Express the probability of at least r waiting customers using Erlang C and utilization.
  • Derive the geometric tail by summing stationary probabilities.
  • Compute queue-length tail probabilities and verify them from the stationary weights.
  • Identify the off-by-one error in converting a waiting-customer threshold to a system-size threshold.

From Waiting Customers to System Size

In an M/M/c queue, the number of customers in the system includes both those receiving service and those waiting. A question about waiting customers must therefore be translated into a threshold for the total number in the system. In stationarity, the probabilities above the point where all servers are occupied decrease geometrically. This makes tail probabilities straightforward to calculate once the probability of delay and the server utilization are known.

Consider an M/M/c queue on a probability space \((\Omega,\mathcal{F},\mathbb{P})\), with arrival rate \(\lambda>0\), \(c\ge1\) servers, and independent exponential service times of rate \(\mu>0\) at each server. Let \(L_t\in\{0,1,2,\ldots\}\) be the number of customers in the system at time \(t\). When \(L_t=n\), the total service-completion rate is \(\min(n,c)\mu\). Define the offered load \(a=\lambda/\mu\) and the utilization \(\rho=\lambda/(c\mu)=a/c\). A stationary distribution exists when \(\rho<1\), or equivalently \(\lambda<c\mu\). Write \(p_n=\mathbb{P}(L_t=n)\) when the process is in stationarity.

The number waiting, not counting customers in service, is \(Q_t=(L_t-c)^+=\max(L_t-c,0)\). Thus, for an integer \(r\ge1\), at least \(r\) customers are waiting exactly when \(L_t\ge c+r\). This threshold is the key to using the stationary tail correctly.

Stationary distribution: Under \(\lambda<c\mu\), the stationary probabilities of the M/M/c queue are $$ p_n=p_0\frac{a^n}{n!}\quad(0\le n<c),\qquad p_n=p_c\rho^{\,n-c}\quad(n\ge c), $$ where $$ p_0=\left(\sum_{n=0}^{c-1}\frac{a^n}{n!}+ \frac{a^c}{c!(1-\rho)}\right)^{-1}. $$ In particular, the tail from \(n=c\) onward is geometric. The condition \(\rho<1\) ensures that its probabilities have a finite sum.

This is the stationary distribution for the birth-death process with birth rate \(\lambda\) and death rate \(\min(n,c)\mu\) in state \(n\). It can be checked from the adjacent balance equations: for \(n<c\), \(p_n\lambda=p_{n+1}(n+1)\mu\); for \(n\ge c\), \(p_n\lambda=p_{n+1}c\mu\). The displayed normalization makes the probabilities sum to one. The stationary distribution and the Erlang C delay probability are the relevant earlier results; here the focus is how their geometric tail answers waiting-customer questions.

The Tail Formula

Let \(C\) denote the Erlang C delay probability, namely the stationary probability that an arriving customer must wait. For Poisson arrivals, arrivals see the stationary time probabilities, so \(C=\mathbb{P}(L_t\ge c)\) at a stationary time. From the stationary distribution, this is also the probability that all \(c\) servers are busy. Summing the geometric tail gives \(C=p_c/(1-\rho)\).

Theorem (Queue-length tail): For a stable M/M/c queue and an integer \(r\ge1\), $$ \mathbb{P}(Q_t\ge r)=\mathbb{P}(L_t\ge c+r) =\frac{p_c\rho^r}{1-\rho}=C\rho^r. $$ For \(r=0\), \(\mathbb{P}(Q_t\ge0)=1\); the formula \(C\rho^r\) is intended for positive thresholds.

Proof. Assume the queue is in stationarity and \(\rho<1\). By definition, \(Q_t=(L_t-c)^+\), so for \(r\ge1\), the event \(\{Q_t\ge r\}\) equals \(\{L_t\ge c+r\}\). The stationary distribution gives \(p_{c+j}=p_c\rho^j\) for each integer \(j\ge0\). Therefore, using the convergent geometric series,

$$ \mathbb{P}(Q_t\ge r) =\sum_{j=r}^{\infty}p_{c+j} =p_c\sum_{j=r}^{\infty}\rho^j =\frac{p_c\rho^r}{1-\rho}. $$

The same sum starting at \(j=0\) gives \(\mathbb{P}(L_t\ge c)=p_c/(1-\rho)=C\). Substituting this identity into the preceding expression yields \(C\rho^r\). If \(r=0\), every possible queue length is nonnegative, so the probability is one, not \(C\). \(\square\)

A related interpretation follows by conditioning on all servers being busy. For every integer \(r\ge0\),

$$ \mathbb{P}(Q_t\ge r\mid L_t\ge c)=\rho^r. $$

Indeed, for \(r=0\) the conditional probability is one. For \(r\ge1\), its numerator is \(C\rho^r\) by the theorem, and its denominator is \(C>0\). Hence the conditional number waiting has probabilities \(\mathbb{P}(Q_t=j\mid L_t\ge c)=(1-\rho)\rho^j\) for integers \(j\ge0\): subtract the tail at \(j+1\) from the tail at \(j\). This describes the queue size conditional on congestion; it does not say that the unconditional queue length is geometric, because the queue also has positive probability of having fewer than \(c\) customers.

Worked Example: Two Servers and One Waiting Customer

Take \(c=2\), \(\lambda=1\), and \(\mu=1\). Find the stationary probability that at least one customer is waiting, and then find the probability that at least three are waiting.

Here \(a=\lambda/\mu=1\) and \(\rho=\lambda/(c\mu)=1/2\), so the stability condition holds. The unnormalized stationary weights for \(n=0,1\) are \(1\) and \(1\). At \(n=2\), the weight is \(a^2/2!=1/2\). The weights from \(n=2\) onward sum to \((1/2)/(1-1/2)=1\). The total normalizing constant is therefore \(1+1+1=3\), and \(p_0=1/3\). In particular, \(p_2=(1/3)(1/2)=1/6\), and \(C=p_2/(1-\rho)=(1/6)/(1/2)=1/3\).

At least one waiting customer means \(L_t\ge2+1=3\). The tail formula gives \(\mathbb{P}(Q_t\ge1)=C\rho=(1/3)(1/2)=1/6\). At least three waiting means \(L_t\ge2+3=5\), so \(\mathbb{P}(Q_t\ge3)=C\rho^3=(1/3)(1/2)^3=1/24\).

Check: The stationary weights sum to one after normalization: \(p_0=1/3\), \(p_1=1/3\), and \(\sum_{n=2}^{\infty}p_n=(1/6)/(1-1/2)=1/3\). Also, the probability of at least three waiting is the tail from state \(5\): \(p_5=p_2(1/2)^3=1/48\), and \(\sum_{n=5}^{\infty}p_n=(1/48)/(1-1/2)=1/24\), as obtained above.

Worked Example: Three Servers and Two Waiting Customers

Take \(c=3\), \(\lambda=2\), and \(\mu=1\). Find the probability that at least two customers are waiting.

Now \(a=2/1=2\) and \(\rho=2/(3\cdot1)=2/3<1\). The weights below \(c\) are \(1\), \(2\), and \(2^2/2!=2\). The weight at \(n=3\) is \(2^3/3!=4/3\), and the sum from \(n=3\) onward is \((4/3)/(1-2/3)=4\). Thus the normalizing constant is \(1+2+2+4=9\), giving \(p_0=1/9\) and \(p_3=(1/9)(4/3)=4/27\). The delay probability is \(C=p_3/(1-\rho)=(4/27)/(1/3)=4/9\).

At least two waiting customers means \(L_t\ge3+2=5\). Therefore \(\mathbb{P}(Q_t\ge2)=C\rho^2=(4/9)(2/3)^2=(4/9)(4/9)=16/81\).

Check: The probability from state \(5\) onward is computed using \(p_5=p_3(2/3)^2=(4/27)(4/9)=16/243\). Summing that tail gives \((16/243)/(1-2/3)=48/243=16/81\), matching the formula. The normalizing check is \(1/9+2/9+2/9+4/9=1\), where the final \(4/9\) is the entire tail from state \(3\).

Worked Example: A Higher Utilization and a Longer Tail

Take \(c=2\), \(\lambda=3/2\), and \(\mu=1\). Find the probability that at least four customers are waiting.

The offered load is \(a=(3/2)/1=3/2\), and utilization is \(\rho=(3/2)/(2\cdot1)=3/4<1\). The weights below \(c\) are \(1\) and \(3/2\). The weight at \(n=2\) is \(a^2/2!=(9/4)/2=9/8\). The tail from state \(2\) sums to \((9/8)/(1-3/4)=9/2\). Hence the normalizing constant is \(1+3/2+9/2=7\), so \(p_0=1/7\), \(p_2=(1/7)(9/8)=9/56\), and \(C=p_2/(1-\rho)=(9/56)/(1/4)=9/14\).

At least four waiting customers requires \(L_t\ge2+4=6\). Thus the probability is \(C\rho^4=(9/14)(3/4)^4=(9/14)(81/256)=729/3584\).

Check: The probabilities below state \(2\) sum to \(p_0+p_1=(1/7)+(3/14)=5/14\), and the tail from state \(2\) is \(C=9/14\), so the total is \(5/14+9/14=1\). For the target tail, \(p_6=p_2(3/4)^4=(9/56)(81/256)=729/14336\). The sum from state \(6\) onward is \(p_6/(1-3/4)=4p_6=729/3584\), confirming the result.

Reading and Using the Result

The formula separates the tail into two factors. Erlang C, \(C\), is the probability that the queue is in the all-servers-busy region; \(\rho^r\) is the additional geometric reduction for requiring at least \(r\) customers to be waiting. For example, conditional on all servers being busy, requiring one more waiting customer multiplies the tail probability by \(\rho\). Requiring each additional waiting customer contributes another factor of \(\rho\).

This relationship is useful when answering a specific capacity or service-level question about queue length. Once \(C\) and \(\rho\) are available, the positive-threshold tail can be computed without summing a long list of state probabilities. It also shows why high utilization matters: as \(\rho\) approaches one from below, successive tail probabilities decay more slowly. The stability condition remains essential. If \(\rho\ge1\), the geometric weights from \(n=c\) onward do not have a finite sum, so there is no normalized stationary distribution of this form and no stationary tail probability to calculate.

Common mistake: shifting the exponent by one. In the first example, at least two waiting customers means at least \(c+2=4\) customers in the system. The correct probability is \(C\rho^2=(1/3)(1/2)^2=1/12\). A common incorrect calculation is \(C\rho^{2-1}=(1/3)(1/2)=1/6\), which is actually the probability of at least one waiting customer. The correction is to translate the waiting threshold first: \(Q_t\ge r\) means \(L_t\ge c+r\), so the exponent is \(r\), not \(r-1\).

Another error is to use \(\lambda/\mu\) as the utilization. That ratio is the offered load \(a\); utilization per server is \(\rho=\lambda/(c\mu)\). They are not interchangeable. In the three-server example, \(a=2\) while \(\rho=2/3\); using \(a\) as the geometric ratio would incorrectly produce a growing tail instead of a summable one.

Check Your Understanding

Use the stationary M/M/c assumptions and distinguish the number waiting from the total number in the system.

  1. For a stable M/M/c queue, express the event that at least \(r\ge1\) customers are waiting in terms of \(L_t\).
  2. If the Erlang C probability is \(C\) and \(\rho=1/3\), what is the stationary probability of at least two waiting customers, in terms of \(C\)?
  3. For \(c=4\), what total-system threshold corresponds to at least three waiting customers?
  4. Why does the tail formula require \(\rho<1\)?
  5. Explain why \(\mathbb{P}(Q_t\ge0)\) is not given by \(C\rho^0\).