Queueing theory (source code)

= Queueing theory
{wiki}

Queueing theory studies how jobs accumulate while waiting for limited service: customers at a desk, requests at a computer, or calls competing for a connection. A <queue> model specifies how jobs arrive, their <service times>, the number of servers, the <buffer size of a queue>, and the <service discipline>. Its practical questions include the <queue population>, <queueing delay>, <customer sojourn time>, <queue throughput>, and <server utilization>.

Average spare capacity does not guarantee short waits. Even when the <service rate of a queue> exceeds the arrival rate, bursts of arrivals and unusually long <service times> can leave work waiting. The <M M 1 utilization and delay> example shows that an 80 percent <server utilization> can turn a 12-minute mean <service time> into a 60-minute mean <customer sojourn time>. As capacity is approached, congestion grows sharply; reserving spare capacity can be much more valuable than its idle fraction suggests.

Two complementary ideas make <queueing theory> especially useful. <Little's law> converts a measured <queue population> and <queue throughput> into a mean <customer sojourn time>, using a counting identity rather than a particular arrival law. <Poisson arrivals see time averages> answers a different question: when do arriving customers see the same state frequencies as an observer sampling over time? That requires an exogenous <Poisson process> and a system that cannot anticipate its future arrivals. Neither result by itself determines all <queueing delays>; detailed models such as the <M M 1 queue> and <M G 1 queue> supply the remaining information.